gpt4 book ai didi

ios - 每次以 24 小时制显示 NSDate 中的小时数?

转载 作者:技术小花猫 更新时间:2023-10-29 10:19:30 25 4
gpt4 key购买 nike

我有这个日期格式化程序:

 NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init];
[timeFormatter setDateFormat:@"HH:mm"];

如果我使用这个:

 NSDate *myDate = [timeFormatter dateFromString:@"13:00"];

它返回这个:

 "1:00"

这是因为模拟器已经24小时关机了。但是对于我的应用程序,我确实需要 "13:00" 而不是 "1:00"

--- 编辑 1 ---

添加了新代码:

NSCalendar *calendar= [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSCalendarUnit unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;

NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init];
[timeFormatter setDateFormat:@"HH:mm"];
NSDate *timeForFirstRow = [timeFormatter dateFromString:@"13:00"];
NSDateComponents *dateComponents = [calendar components:unitFlags fromDate:timeForFirstRow];
NSInteger hour = [dateComponents hour]; //This will be 1 instead of 13
NSInteger minute = [dateComponents minute];

最佳答案

如果你想强制它为 12 小时或 24 小时模式,无论用户的 24/12 小时模式设置如何,你应该将日期格式化程序的区域设置为 en_US_POSIX(12 小时),或者,例如,en_GB 表示 24 小时模式。

也就是说,

NSLocale* formatterLocale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"] autorelease];
[timeFormatter setLocale:formatterLocale];

更多关于这里:

http://developer.apple.com/iphone/library/qa/qa2010/qa1480.html

关于ios - 每次以 24 小时制显示 NSDate 中的小时数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5283539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com