8

我有一个这样的字符串

NSString *datestr = @"2013-08-06T03:51:54+00:00";

我尝试将 dateformat 设置如下:

NSDateFormatter *dformat = [[NSDateFormatter alloc]init];

[dformat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];

NSDate *date = [dformat dateFromString:datestr];

但是日期将为零,所以,谁能告诉我如何设置日期格式,谢谢!

4

3 回答 3

12

试试这个:

 NSDateFormatter *dformat = [[NSDateFormatter alloc]init];

[dformat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];

NSDate *date = [dformat dateFromString:datestr];

添加ZZZ到格式化程序的末尾。

于 2013-08-07T08:45:30.280 回答
6

试试这个代码

NSString *datestr = @"2013-08-06T03:51:54+00:00";
NSDateFormatter *dformat = [[NSDateFormatter alloc]init];

[dformat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssz"];

NSDate *date = [dformat dateFromString:datestr];

在 z 给你的地方使用 small z - 使用特定的非位置格式。如果不可用,则回退到本地化的 GMT 格式。短格式使用一到三个字母,完整格式使用四个字母。在短格式中,除非在语言环境中打开了常用标志,否则不使用元区域名称

有关目标 c 中日期格式模式的更多信息,请参阅此链接 http://www.unicode.org/reports/tr35/tr35-19.html#Date_Format_Patterns希望这会对您有所帮助

于 2013-08-07T09:58:06.127 回答
1

试试下面:

NSString *dateString = @"2013-08-06T03:51:54+00:00";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ssZ";

NSDate *date;
NSError *error;
[formatter getObjectValue:&date forString:dateString range:nil error:&error];
于 2013-08-07T08:49:29.933 回答