0

我有这个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

如何修复它以给我日期与日期中的时间?

4

3 回答 3

5

在你的时间使用HH而不是,hh最好也设置 timeZone

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] ];
于 2013-03-13T15:50:26.637 回答
3

我想你想要HH24 小时制:

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

但是,我在Data Formatting Guide中注意到了这一点,这可能会影响您:

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

于 2013-03-13T15:50:51.510 回答
1

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

使用H而不是h获取 24 小时格式的时间。

于 2013-03-13T15:50:17.057 回答