0

我想以下列方式显示日期:

  • 如果是今天,则仅显示时间。
  • 如果是过去一周,则显示“昨天”、“星期天”、“星期一”等。
  • 如果超过一周前,则显示实际日期。

我正在尝试获得类似于日期在 iPhone SMS 应用程序中的显示方式。

4

3 回答 3

1

为什么不使用的方法

setDoesRelativeDateFormatting:

设置为YES。现在格式化程序将根据应格式化的日期返回“今天”或“昨天”或“明天”。如果找不到相对格式,则使用格式化程序将用于格式。

于 2013-07-16T14:28:23.020 回答
1

更多格式模式如下:

  • OS X v10.8 和 iOS 6.0 中的格式化程序使用版本tr35-25
  • iOS 5.0-5.1 中的格式化程序使用版本tr35-19
  • OS X v10.7 和 iOS 4.3 中的格式化程序使用版本tr35-17
  • iOS 4.0-4.2 中的格式化程序使用版本tr35-15
  • iOS 3.2 中的格式化程序使用版本tr35-12
  • OS X v10.6 和 iOS 3.0-3.1 中的格式化程序使用版本tr35-10
于 2013-07-16T09:38:03.587 回答
0

在询问您甚至没有尝试过的事情之前,请先阅读NSDateFormatter此处的链接)和NSDate此处的链接)类文档。

该类NSDateFormatter可用于将日期正确格式化为您选择的日期的不同组件的固定参数。要显示当天的全名,请在格式中使用“cccc”。例如

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setFormat:@"cccc dd-MM, HH:mm:ss"];

为了比较日期,有内置的方法可以比较NSDate对象,例如isEqualToDatelaterDate:timeIntervalSinceNow。通过 Apple 文档链接

于 2013-07-16T09:23:38.340 回答