DOO*_*iac 1 iphone parsing date objective-c nsdateformatter
我有一个字符串,我想解析时间:
NSString *longdate = @"Mar 27, 2011 8:38:38 PM";
Run Code Online (Sandbox Code Playgroud)
我想解析这个日期并输出时间部分w /小时+分钟+上午/下午:
// First, convert our string into an NSDate
NSDateFormatter *inFormat = [[NSDateFormatter alloc] init];
[inFormat setDateFormat:@"MMM dd, yyyy HH:mm:ss aaa"];
NSDate *date = [inFormat dateFromString:longdate];
[inFormat release];
// Now convert from date back to a string
NSDateFormatter *outFormat = [[NSDateFormatter alloc] init];
[outFormat setDateFormat:@"HH:mm aaa"];
NSString *final = [outFormat stringFromDate:date];
[outFormat release];
NSLog(@"original: %@ | final %@", longdate, final);
Run Code Online (Sandbox Code Playgroud)
问题是最后的时间是错误的.我希望时间是晚上8点38分,但我得到的时间是下午12点38分.
我只是希望得到与我所说的相同的小时,而不是打扰任何时区或区域.我在这做错了什么?谢谢.
发现了问题.与时区无关,与使用日期格式化程序的错误格式代码有关.
[inFormat setDateFormat:@"MMM dd, yyyy HH:mm:ss aaa"];
Run Code Online (Sandbox Code Playgroud)
应该:
[inFormat setDateFormat:@"MMM dd, yyyy h:mm:ss aaa"];
Run Code Online (Sandbox Code Playgroud)
同样,outFormat的dateformat应该是:
[outFormat setDateFormat:@"h:mm aaa"];
Run Code Online (Sandbox Code Playgroud)
在此调整之后,即使没有任何TimeZone调整,一切也能正常工作.
| 归档时间: |
|
| 查看次数: |
4796 次 |
| 最近记录: |