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