尝试证明我可以将NSString
转换为NSDate
的简单案例。创建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?
答案 0 :(得分: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]
。
希望有所帮助。
答案 1 :(得分:0)
对我而言,您的系统似乎正在使用Datestyle。
您可以将格式化程序设置为不使用样式:
[df setDateStyle:NSDateFormatterNoStyle];
为什么你一般不使用这种风格?似乎NSDateFormatterShortStyle
就是你想要的。您只需设置时间样式,并使用setLocal:
按日期顺序显示日期。