0

试图证明我可以转换NSStringNSDate. 创建一个NSDate,把它变成一个NSString,然后再变成一个NSDate。日期作为字符串看起来不错,但是当我将其转换回来时,我总是会得到一些日期,例如 12/25/2011 .... 有人能发现我的错误吗?

 NSDateFormatter *df = [[NSDateFormatter alloc] init];
 [df setDateFormat:@"dd/MM/YY hh:mm a"];
 NSDate* b = [[NSDate alloc] init];
 NSString* f = [df stringFromDate:b]; // has the current date and time
 NSDate* dt =[df dateFromString:f];  // 12/25/2011 - where does it get this?
4

2 回答 2

0

尝试使用以下内容:

[df setDateFormat:@"dd/MM/yyyy hh:mma"]; // or @"dd/MM/yy hh:mma"

这是结果:

Printing description of b:
2012-06-12 13:06:16 +0000
Printing description of dt:
2012-06-12 13:06:00 +0000

如果您需要更多信息,我建议您阅读date-formatter-examples

如果您不使用 ARC,请注意内存泄漏。例如,使用[NSDate date]代替[[NSDate alloc] init].

希望有帮助。

于 2012-06-12T13:09:11.113 回答
0

对我来说,您的系统似乎正在使用 Datestyle。

您是否应该将格式化程序设置为不使用样式:

[df setDateStyle:NSDateFormatterNoStyle];

为什么你一般不使用这种风格?看起来这NSDateFormatterShortStyle 就是你想要的。您只需要设置时间样式,并使用setLocal:以您想要的顺序显示日期。

于 2012-06-12T13:09:30.337 回答