[英]How do I convert from NSString to NSDate using NSDateFormater
我有以下字符串: 2012-01-12T21:01:00
和此代码:
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd hh:mm:ss a"];
NSDate* arrivalTime=[df dateFromString:field_arrival_time];
但是它返回nil
。 我应使用哪种日期格式来解析此字符串?
您的字符串2012-01-12T21:01:00
包含文字T
(至少我相信这是文字,它似乎并不表示时区)。 您必须以日期格式包含它。
[df setDateFormat:@"yyyy-MM-dd'T'hh:mm:ss"];
请注意,日期格式中缺少a
,使用它会要求您的输入字符串使用AM或PM并在其后加上空格。 有关使用NSDateFormatter特殊字符的更多信息,请参阅《 日期格式指南》 ,特别注意“ 固定格式” 。
编辑:您的输入字符串未指定时区,当您通过NSLog()
输出时,它可能会解释为UTC并被本地化为您机器的时区。
我已经对您的字符串做了很多尝试,但从未获得结果。 只有零显示在控制台上。 但是,当我从您的字符串中删除字符“ T”时,它会给出理想的结果。
[f setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [f dateFromString:@"2012-01-12 21:01:00"];
NSLog(@"date %@", date);
NSDateFormatter *f2 = [[NSDateFormatter alloc] init];
[f2 setDateFormat:@"dd-MM-yyyy"];
NSString *s = [f2 stringFromDate:date];
NSLog(@"S %@", s);
/// OutPut : S 12-01-2012
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.