IOS如何设置日期格式

时间:2013-08-07 08:41:21

标签: ios nsdate

我有一个像这样的字符串

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];

但是日期将是零,所以,任何人都可以告诉我如何设置dateformat,thx!

3 个答案:

答案 0 :(得分:11)

试试这个:

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

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

NSDate *date = [dformat dateFromString:datestr];

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

答案 1 :(得分: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 ,其中z为您提供 - 使用特定的非位置格式。如果不可用,则回退到本地化的GMT格式。短格式使用一到三个字母,全格式使用四个字母。在短格式中,除非在语言环境中使用commonUsed标志,否则不使用元区域名称

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

答案 2 :(得分: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];