簡體   English   中英

如何使用NSDateFormatter將任意時間轉換為NSDate以對其進行格式化?

[英]How to convert arbitrary time to NSDate to format it using NSDateFormatter?

假設我有一個包含15:00 PMNSString 我正在嘗試使用NSDateFormatter進行格式化以顯示

3:00 PM

但是,當我嘗試打印格式化的字符串時,它為null

NSString *string = @"15:00 PM";
NSDateFormatter *formatter = [ [NSDateFormatter alloc] init];
[formatter setDateFormat:@"hh:mm a"];
NSDate *time = [formatter dateFromString:string];

string = [formatter stringFromDate:time];

NSLog(@"%@", string);

應該如何分配字符串以正確格式化它?

使用以下代碼,

NSString *string = @"15:00";
NSDateFormatter *inputDateFormatter = [[NSDateFormatter alloc] init];
[inputDateFormatter setDateFormat:@"HH:mm"];

NSDate *date = [inputDateFormatter dateFromString:string];

NSDateFormatter *outputDateFormatter = [[NSDateFormatter alloc] init];
[outputDateFormatter setDateFormat:@"hh:mm a"];
NSString *outputString = [outputDateFormatter stringFromDate:date];

我同意Mikhail的評論,您應該這樣寫模式:

[formatter setDateFormat:@"HH:mm a"];

格式字符串使用Unicode技術標准#35( 參考 )中的格式模式,有關iOS中日期和時間格式的更多信息,您可以在這里查看

下面的屏幕截圖顯示24小時格式不包含am / pm部分:- 在此處輸入圖片說明

使用有效的日期格式,然后使用以下代碼將時間設置為12小時格式:-

NSDate *time = [formatter dateFromString:string];
[formatter setDateFormat:@"hh:mm"];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM