簡體   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