如何使用NSDateFormatter显示人类可读的NSDate

时间:2013-03-24 23:23:17

标签: objective-c nsdateformatter

我需要显示人类可读的NSDate本地化格式。

目前,NSDateFormatter一次只能格式化一个日期。

但是,我可以找到关于如何进行两种日期格式的任何示例。

以下是我需要制作的一些格式示例。

  1. 10:00 - 11:00 AM 2013年3月25日星期一

  2. 上午10:00 - 晚上11:00 2013年3月25日星期一

  3. 并且这些也需要采用本地化格式,具体取决于区域设置和时区。

    任何人都可以遮挡一些灯吗?非常感谢你。

1 个答案:

答案 0 :(得分:2)

无论你如何处理这个问题,你都必须将两个字符串组合在一起。

归结为它时,你最终会有两个日期:

10:00 - 11:00AM Monday 25th March, 2013
^^^^^   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Date1   Date2

您可以使用两个单独的NSDateFormatter对象来提供您所需的内容。

NSDateFormatter *timeOnlyDateFormatter = [[NSDateFormatter alloc] init];
//... set the format for the timeOnlyDateFormatter here
NSDateFormatter *fullDateFormatter = [[NSDateFormatter alloc] init];
//.. set the format for the fullDateFormatter here

有了这个,您可以使用它们来创建Date1字符串和Date2字符串,然后将它们组合起来。

NSString *firstString = [timeOnlyDateFormatter stringFromDate:firstDate];
NSString *secondString = [fullDateFormatter stringFromDate:secondDate];
NSString *combined = [NSString stringWithFormat:@"%@ - %@", firstString, secondString];

据我所知,没有真正漂亮的方法可以做到这一点。