我编写下面的代码将一种日期格式转换为另一种日期格式。
但是 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/

10-11 02:36