ios - 在 iOS 中为我​​的时间设置 AM/PM

标签 ios datetime time nsdate

我原来的日期格式是:2014-03-14T10:35:24.537

所以我先把时间和日期用componentsSeparatedByString分开,然后我把后半部分(时间部分)保存到NSString时间,同时去掉微秒。格式为 10:35。我试图让它添加 PM/AM 但 setDateFormat:@"hh:mm a"没有这样做。我究竟做错了什么?

NSArray *components = [datestr componentsSeparatedByString:@"T"];
NSString *time = components[1];
time = [time substringWithRange:NSMakeRange(0, 5)];

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"hh:mm a"];
NSDate *timeFromString = [formatter dateFromString:time];
NSLog(@"%@", timeFromString);

当我记录 timeFromString 时,我得到一个空值。

编辑:我将上面的格式化程序更改为 [formatter setDateFormat:@"hh:mm"];现在 timeFromString 记录为:2000-01-01 18:35:00 +0000 当数据进入时是 2014-03-14T10:35:28.42

最佳答案

日期格式化程序用于将日期与字符串相互转换。不能使用单个日期格式化程序在两种不同的日期格式之间进行转换。 (至少,不是没有在操作之间改变日期格式化程序。)

使用一个格式化程序将原始字符串转换为日期。该格式化程序不应包含 AM/PM,因为您的原始字符串不包含。

使用第二个格式化程序将日期转换为新字符串。如果您需要,该格式化程序应包括 AM/PM。

关于ios - 在 iOS 中为我​​的时间设置 AM/PM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22413646/

相关文章:

iphone - 当可以使用 NSUserDefaults 时,为什么要使用单例在多个 View Controller 之间共享数据?

javascript - 转换时间 hh :mm:ss into GMT time format in Angular 2

go - 如何解析 "2019-09-19 04:03:01.770080087 +0000 UTC"时间戳

swift - timePicker 的 Action 监听器

c++ - 为什么排序不及时 O(n log (n))

ios - Spritekit - 动画和内存管理

ios - 字母数字数组排序

ios - Xcode 在 Ruby 错误编码中运行阶段脚本

php - Laravel 检查日期是否在两个日期之间。

java - 从请求中获取zoneID以将请求日期和时间转换为java 8中的UTC格式