簡體   English   中英

將時間從24格式轉換為12格式

[英]Convert a time with 24 format to 12 format

我有一個時間格式為24的字符串,例如@“ 22:00”,我想將此時間轉換為@“ 10:00 pm”,所以我編寫了以下代碼:

NSDateFormatter *df=[[NSDateFormatter alloc]init];
[df setDateFormat:@"HH:mm"];
NSDate *date= [df dateFromString:@"22:00"];
[df setDateFormat:@"hh:mm a"];
NSLog(@"%@",[df stringFromDate:date]);

不幸的是結果仍然是@“ 22:00”。

在此處輸入圖片說明

問題是如何將24格式的時間轉換為12格式?

您實際上並不需要NSDateFormatter ,因為這是一個簡單的數學問題:

NSString *time24 = @"24:00";
NSArray *elements = [time24 componentsSeparatedByString:@":"];
NSAssert([elements count] == 2, @"Expected 2 time elements"];
NSInteger hour = [elements[0] intValue];
NSInteger minutes = [elements[1] intValue];
NSString *time12 = [NSString stringWithFormat:@"%02d:%02d %@",
    hour % 12, minutes, (hour >= 12 ? @"PM" : @"AM")];

暫無
暫無

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

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