我知道这听起来似乎很熟悉,但是出于某种奇怪的原因,大多数关于SO的建议解决方案对我来说都行不通。
我从SQLite查询返回的日期字符串为NSString,格式为:
2019-06-10 13:45:33
但是,当应用任何建议的日期格式解决方案时,有或没有时区本地化,我都会得到这样的结果:
Mon Jun 10 13:45:33 2019
这是我尝试过的例程之一,
NSString * dateString = @"2019-06-10 13:45:33";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
//[dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
//[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss ZZZ"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];
// dateFromString > Mon Jun 10 13:45:33 2019
我可能做错了什么,还是转换中缺少一些步骤?
TIA。
答案 0 :(得分:1)
我猜想您想要另一种输出格式,如果是这种情况,那么您可以尝试这样的代码:
NSString * dateString = @"2019-06-10 13:45:33";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
//[dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
//[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss ZZZ"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];
NSDateFormatter *printDateFormatter = [[NSDateFormatter alloc] init];
printDateFormatter.dateStyle = NSDateIntervalFormatterMediumStyle;
printDateFormatter.timeStyle = NSDateIntervalFormatterMediumStyle;
NSLog(@"%@", [printDateFormatter stringFromDate:dateFromString]);
结果将是:
10 Jun 2019 at 13:45:33
答案 1 :(得分:1)
使用其他格式化程序格式化日期中的字符串。例如:
NSDateFormatter * formatter=[[NSDateFormatter]alloc]init];
formatter.dateStyle = NSDateFormatterMediumStyle;
formatter.timeStyle = NSDateFormatterNoStyle;
NSString * formattedDateString = [formatter stringFromDate:date];
setDateFormat用于输入日期字符串并获取NSDate。
dateStyle和timeStyle用于格式化NSDates中的dateString。