转换NSDate到NSString时间问题



我有这个NSDate:

2013-03-14 17:35:00 +0000

我试着用这个把它转换成NSString:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MM/dd/yyyy hh:mm:ss"];
[formatter stringFromDate:item.startdate];

我得到的是:

03/14/2013 05:35:00

我如何修复它,让我的日期与日期中的时间一样?

在您的时间中使用HH而不是hh,并且设置时区也是一个好主意

NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init];
[timeFormatter setDateFormat:@"MM/dd/yyyy HH:mm:ss"];
[timeFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
NSString *newTime = [timeFormatter stringFromDate:[[NSDate alloc]init] ];

我想你需要HH为24小时时钟:

[formatter setDateFormat:@"MM/dd/yyyy HH:mm:ss"];

但是我在数据格式指南中注意到了这一点,这可能会影响到你:

在iOS中,用户可以覆盖默认的AM/PM和24小时时间设置。这可能会导致NSDateFormatter重写格式字符串你集。

[formatter setDateFormat:@"MM/dd/yyyy HH:mm:ss"];

使用H代替h来获取24小时格式的时间

最新更新