run*_*mad 1 objective-c nsdate nsdateformatter
我目前以24小时格式显示时间,因为对我来说这对我现有的数据来说是最简单的事情.
我在"午夜以来的分钟"中得到时间,例如,07:00或7:00 am是"420",21:30或9:30 pm是"1290",依此类推.
[NSString stringWithFormat:@"%02d:%02d - %02d:%02d", (open / 60), (open % 60), (close / 60), (close % 60)]
Run Code Online (Sandbox Code Playgroud)
有没有一种很好的方法来使用NSDateFormatter将24h转换为12h?我尝试了很多东西,但我从来没有得到100%正确的格式.
我也尝试了很多if语句,但最终只能得到太多代码行,在我看来这对于这样一个相对"简单"的工作来说应该是完全没有必要的.
此外,无论我尝试我也最终错误的12小时格式化开始时没有"1",例如"09:30 am"等等.我可以通过寻找后缀来剥离这个,但这只是看起来似乎乏味和怪异.
Ale*_*dro 11
您应该使用系统的默认日期格式:
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setHour:hours];
[comps setMinute:minutes];
NSDate* date = [[NSCalendar currentCalendar] dateFromComponents:comps];
NSString* dateString = [NSDateFormatter localizedStringFromDate:date dateStyle:NSDateFormatterNoStyle timeStyle:NSDateFormatterLongStyle];
Run Code Online (Sandbox Code Playgroud)
或者,如果你坚持,你可以做
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"hh:mm a"];
NSString* dateString = [dateFormatter stringFromDate:date];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6091 次 |
| 最近记录: |