ios - NSDateFormatter 中的 AM/PM 问题

标签 ios iphone ipad nsdateformatter

我在下面编写代码将一种日期格式转换为另一种日期格式。 但是 AM 字符串有效,而 PM 无效。 请帮助-

dateTime=@"2013-01-24 18:30 PM";
//dateTime=@"2013-01-24 06:30 AM";
NSDateFormatter *dtFormatter=[[NSDateFormatter alloc]init];
[dtFormatter setDateFormat:@"yyyy-MM-dd hh:mm a"];
NSDate *AptDate=[dtFormatter dateFromString:dateTime];
[dtFormatter setDateFormat:@"MMM dd,yyyy hh:mm a"];
NSString *strDate=[dtFormatter stringFromDate:AptDate];

如果我使用 PM 格式,这里我将 AptDate 变量设为 null

最佳答案

您需要使用 HH 代替 hh,因为您的时间是 24 小时格式:

[dtFormatter setDateFormat:@"yyyy-MM-dd HH:mm a"];

您的完整代码如下:

*dateTime=@"2013-01-24 18:30 PM";
//dateTime=@"2013-01-24 06:30 AM";
NSDateFormatter *dtFormatter=[[NSDateFormatter alloc]init];
[dtFormatter setDateFormat:@"yyyy-MM-dd HH:mm a"];
NSDate *AptDate=[dtFormatter dateFromString:dateTime];
[dtFormatter setDateFormat:@"MMM dd,yyyy hh:mm a"];
NSString *strDate=[dtFormatter stringFromDate:AptDate];

NSLog(@"===> %@",AptDate);
NSLog(@"===> %@",strDate);

输出:

===> 2013-01-24 07:00:00 +0000
===> Jan 24,2013 12:30 PM

关于ios - NSDateFormatter 中的 AM/PM 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14498420/

相关文章:

ios - 定义大于 iPhone 6 屏幕尺寸?

ios - 使用 Parse Cloud Code 从 Parse 获取总和(适用于 iOS 应用程序)

iphone - Objective-C 的内置 rand() 函数的确切算法是什么?

iphone - 如何应对界面方向变化?

iphone - 续订过期的企业配置文件以及其他问题

ios - 如何使用 XIB 编辑 UITableView 上的单元格,就像 Storyboard 一样

ios - 在 Tap 手势上设置隐藏的 textField

ios - 等价于 Flutter 中的 viewWillAppear()

css - Div 仅在 Ipad 显示屏上显示

iphone - 在非开发人员 iOS 设备上存储控制台输出的最简单方法