NSDate的时间格式

问题描述:

我有从Web服务进入我的应用程序的日期时间值。格式如下:NSDate的时间格式

2013-03-24T09:45:00.000-04:00

我只需要时间从该值。我使用NSDateFormatter和我设定的日期格式如下:

[df setDateFormat:@"HH:mm:ss"]; 

,我这样做时,我得到一个非常模糊的运行时错误。但是,我没有错误,当我用下面的(尽管它不符合我的要求):

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

有人能帮忙吗?

试试这个

NSString *originalDateString = @"2013-03-24T09:45:00.000-04:00"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.sssz"]; 
NSDate *date = [dateFormatter dateFromString:originalDateString]; 

[dateFormatter setDateFormat:@"HH:mm:ss"]; 
NSString *newDateString = [dateFormatter stringFromDate:date]; 
+1

对于该TZ方案,日期格式应以ZZZZZ结尾。 – 2013-03-24 21:02:02

+0

@HotLicks我得到正确的输出后发布了代码。你能证实这一点吗? – Anupdas 2013-03-24 21:06:55

+0

在AM/PM中,NSDateFormatter中是否有方法将24小时时间格式转换为12? – Pheepster 2013-03-24 21:08:23

也许如果你使用日期格式化器检索的NSDate实例,并从那里做你自己格式化。

NSSTring *dateString = "2013-03-24T09:45:00.000-04:00"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
NSDate *dateFromWebApp = [dateFormatter dateFromString:dateString]; 

没有测试过寿,但它应该工作。

Cheers

+0

这根本行不通。你从不指定日期格式。 – rmaddy 2013-03-24 22:18:31