2013-05-02 75 views
4

我也有类似的这些部分日期字符串:指定的时间与NSDateFormatter偏移(-0500)

2013-01-25 00:00:00 -0500 
2013-01-22 00:00:00 -0700 
2013-01-26 00:00:00 -0200 

我想用一个NSDateFormatter使用这些类型的字符串创建一个NSDate。我知道如何使用格式化程序获取日期的第一部分(2013-01-25 00:00:00),但我不知道如何指定偏移量部分(-0500-0200等)。下面的代码来获得日期字符串的开头:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy'-'MM'-'dd HH':'mm':'ss"]; 
NSString *dateString = @"2013-01-25 00:00:00"; // <-------- Truncated ---- 
NSDate *date = [dateFormatter dateFromString:dateString]; 
NSLog(@"Date: %@", date); 

我怎样才能得到它与-0500部分工作?我试过SSSZ,但它没有工作(给了null日期)。

+0

正是你想要的“Date:2013-01-25 00:00:00 -0500”。我对吗 ? – 2013-05-02 12:18:08

+0

@DharmbirChoudhary我添加了一些日期格式的例子。 – 2013-05-02 12:20:05

+0

我问你想要这样的输出“Date:2013-01-25 00:00:00 -0500”。我对吗 ? – 2013-05-02 12:22:02

回答

8

试试这个:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy'-'MM'-'dd HH':'mm':'ss ZZZ"]; 
NSString *dateString = @"2013-01-25 00:00:00 -0500"; 
NSDate *date = [dateFormatter dateFromString:dateString]; 
NSLog(@"Date: %@", date); 

我得到:

日期:2013年1月25日05:00:00 +0000

作为一个侧面说明,这里是所有日期格式的标准:http://unicode.org/reports/tr35/tr35-4.html#Date_Format_Patterns

+0

很好,谢谢。 'ZZZ'是否适用于任何时区信息? – 2013-05-02 14:16:03

+0

很高兴帮助。以下是日期格式选项的完整标准供您参考:http://unicode.org/reports/tr35/tr35-4.html#Date_Format_Patterns – iwasrobbed 2013-05-02 17:42:14

+0

为什么总是+000 – Jitendra 2014-08-25 12:55:10