2013-03-24 70 views
1

我需要显示人类可读的NSDate本地化格式。如何使用NSDateFormatter显示人类可读的NSDate

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

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

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

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

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

以及这些需要以本地化格式取决于语言环境和时区。

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

+0

有时你必须编写自己的代码。 – 2013-03-25 00:15:24

回答

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 

有了这个,你可以使用它们来创建两个日期1串和date2字符串,然后将它们结合起来。

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

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

+0

是的,我以前想过这个解决方案,但我坚持使用本地化的一部分。上述解决方案在格式固定时很好。但是,对于我的情况,我需要根据所用的时区和区域设置对其进行本地化。所以,格式不能修复。 – user2205732 2013-03-24 23:46:03

+0

您可以根据区域设置更改格式。你仍然需要使用一个NSDateFormatter或滚动你自己的(这不完全是一个简单的努力) – Malaxeur 2013-03-28 05:04:47

相关问题