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