我在下面编写代码,将一种日期格式转换为另一种日期格式。 但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答案 0 :(得分:12)
您需要使用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
答案 1 :(得分:0)
UILabel *dateLabel = (UILabel *)[cell viewWithTag:400];
NSString *oldDate = [exercise objectForKey:@"date"];
//make formatter
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //24 hour format
NSDate *tempDate=[formatter dateFromString:oldDate];
NSLog(@"temp date %@", tempDate);
[formatter setDateFormat:@"hh:mm a"];
NSString *newDate=[formatter stringFromDate:tempDate];
NSLog(@"new date %@", newDate);
//make label text
[dateLabel setText:newDate];
对于任何从mySQL看DATETIME标记到常规hh:mm的人来说,正确显示AM / PM的格式对我有用。
答案 2 :(得分:0)
对于那些正在寻找 Swift 3 版本的接受答案的人。
Task.Factory.StartNew