以下是我所拥有的。
NSString *mss = @"2014-06-25 18:03:59.61";
NSDateFormatter *f = [[NSDateFormatter alloc] init];
[f setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
[f setDateFormat:@"YYYY-MM-dd HH:mm:ss.S"];
NSDate *date = [f dateFromString:mss];
NSDateFormatter *f2 = [[NSDateFormatter alloc] init];
NSLog(@"date==%@", date);
[f2 setDateFormat:@"dd/MM/YYYY hh:mm a"];
NSString *s = [[f2 stringFromDate:date] uppercaseString];
NSLog(@"s===%@--", s);
我有2部带有 iOS 7最新版本的iPhone 。
现在,当我尝试运行上面的代码时,它可以在iPhone 5s(12小时格式)中正常工作,但为iPhone 4s提供24小时格式化日期(24小时格式)。
iPhone 4s>> 24小时格式
date==2014-06-25 15:03:59 +0000
s===25/06/2014 18:03--
^^^^^ this is problem
iPhone 5s>> 12小时格式
date==2014-06-25 03:03:59 pm +0000
s===25/06/2014 06:03 PM--
我知道如何解决这个问题?
大问题是我在下面缺席了。
[f2 setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
我必须使用相同的时区设置两个格式化程序。
答案 0 :(得分:7)
试试这个
NSString *sel_date= @"2014-06-25 18:03:59.61";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
[dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss.S"];
NSDate *date = [dateFormatter dateFromString:sel_date];
[dateFormatter setDateFormat:@"dd/MM/yyyy hh:mm a"];
NSString *dateWithNewFormat = [dateFormatter stringFromDate:date];
NSLog(@"datestring ==== %@",dateWithNewFormat);
输出
datestring ==== 25/06/2014 06:03 PM