iOS 将字符串转换为日期 : hour is the same on two different times

标签 ios nsdateformatter

我有这段代码可以将字符串转换为日期:

NSString* strToConvert;
NSDate* dtToReturn;
//...code to parse string
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"MM/dd/yy, HH:mm:ss a"];
    [dateFormatter setTimeZone:[NSTimeZone localTimeZone]];

    dtToReturn = [dateFormatter dateFromString:strToConvert];

我将这个字符串“08/30/16 02:22:00 PM”发送给它

它返回这个日期:2016-08-30 16:22:00 +0000

这是预期的,因为我是 GMT +4

但是如果我发送这个字符串:“08/30/16 03:22:00 PM”

它返回相同的日期:2016-08-30 16:22:00 +0000

我一次只将一个字符串传递给该方法。我的日期格式化程序有问题吗?

最佳答案

因为 strToConvert 使用 AM/PM 小时时间,而日期格式化程序使用 24 小时时间,这会导致错误的日期转换。修复日期格式化程序的 dateFormat 以使用 AM/PM 小时时间:@"MM/dd/yy, hh:mm:ss a"

关于iOS 将字符串转换为日期 : hour is the same on two different times,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39298817/

相关文章:

ios - 如何在动画中更改 UITableView 标签 textColor 两次?

iOS 自定义键盘增加 UIInputViewController 高度

ios - UICollectionView 仅在 Scroll 上加载图像

ios - 自定义 iOS UINavigationBar/UITabBar 和移除 Tint Colors

ios - NSTimeZone timeZoneWithName缩写在不同设备上显示不同的缩写

ios - 24 小时制不格式化日期

objective-c - 如何以编程方式替换使用绑定(bind)的 NSTextField 中的 "No Selection"占位符?

ios - 在图像上绘制以标记特定对象并保存到照片库

iphone - 使用NSDateFormatter将字符串转换为NSDate会在1年内返回差额

ios - newDateFormatter.string(来自 : ) is always nil