5

我有一些类似于这些的日期字符串:

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

我想使用 anNSDateFormatter来创建一个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日期)。

4

1 回答 1

9

试试这个:

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-01-25 05:00:00 +0000

作为旁注,这是所有日期格式的标准:http: //unicode.org/reports/tr35/tr35-4.html#Date_Format_Patterns

于 2013-05-02T12:51:09.020 回答