相关疑难解决方法(0)

NSDateFormatter dateFromString和iPhone 24小时格式混淆

我遇到了问题.我得到了12小时格式的传入时间字符串,我将它们转换为NSDate对象.当iPhone处于12小时格式时,没问题.但是当它采用24小时格式时,事情就出错了.以下是一些示例代码:

NSString *theTime = @"3:19 PM";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"h:mm a"]; // "3:19 PM"
NSDate *date = [formatter dateFromString:theTime];
NSString *theString = [formatter stringFromDate:date];
Run Code Online (Sandbox Code Playgroud)

24小时模式,日期是1970-01-01三点19分00秒,而theString是"3:19" -错误

在12小时模式中,日期是1970-01-01 15:19:00,而是"下午3:19" - 右

所以...问题1:为什么设备的24小时设置会覆盖我的日期格式化程序设置?

更重要的是,问题2:如何从12小时到24小时进行正确的转换?

我已经有代码来检测手机是否处于24小时模式,但除了在字符串中挖掘并用15交换3之外,似乎没有干净的方法来执行此操作.

iphone time cocoa-touch nsdateformatter

25
推荐指数
4
解决办法
3万
查看次数

NSDateFormatter不允许24小时格式

我必须在我的应用程序中显示日期,我需要以格式显示12 - hour format,我已经使用此代码显示date

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:kDateDisplayFormat];
NSTimeZone *timeZone = [NSTimeZone systemTimeZone];
[dateFormatter setTimeZone:timeZone];
NSString *todaysDate = [NSString stringWithFormat:@"%@",[dateFormatter stringFromDate:[NSDate date]]];
[[self lblPointsDate] setText:todaysDate];
Run Code Online (Sandbox Code Playgroud)

在这里,当我将我的iPhone日期格式更改为24小时时,它以24小时格式显示.我需要 24小时转换为12小时格式或仅以12小时格式显示.我怎样才能做到这一点?

iphone nsdate nsdateformatter ios

3
推荐指数
1
解决办法
3399
查看次数

标签 统计

iphone ×2

nsdateformatter ×2

cocoa-touch ×1

ios ×1

nsdate ×1

time ×1