繁体   English   中英

如何使用NSDateFormater从NSString转换为NSDate

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM