在iPhone设备中,从我们的生产应用程序中为客户设备获取了错误的DateTime格式。
我们使用DateTime格式作为yyyy-MM-dd HH:mm:ss并将空替换为T 并且结果为2018-07-13T15:07:36,但获取日期时间为2018-07-13T3:07:36TPM
复制步骤: 获取日期时间字符串的方法
+ (NSString *)getCurrentLocalDateTime
{
NSDate *localDate = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *dateString = [dateFormatter stringFromDate:localDate];
dateString = [dateString stringByReplacingOccurrencesOfString:@" " withString:@"T"];
NSLog(@"CURR: %@", dateString);
return dateString; // yyyy-MM-ddTHH:mm:ss
}
预期结果: 输出数据必须为-2018-07-13T15:07:36
实际结果: 实际数据-2018-07-13T3:07:36TPM
问题在iOS版本中发生-11.3.1和11.1.2
答案 0 :(得分:3)
只需将用单引号引起来的T
插入日期格式即可获得文字“ T”
@"yyyy-MM-dd'T'HH:mm:ss"
对于固定格式日期,根据Technical Q&A QA1480,将日期格式程序的locale
设置为固定值en_US_POSIX
:
+(NSString *)getCurrentLocalDateTime
{
NSDate *localDate = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
[dateFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];
NSString *dateString = [dateFormatter stringFromDate:localDate];
NSLog(@"CURR: %@", dateString);
return dateString; // yyyy-MM-ddTHH:mm:ss
}
答案 1 :(得分:-2)
以下是NSDateFormatter
的示例。您可以使用它并自定义 day:month:year
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd-MM-yyyy HH:mm"];
NSDate *currentDate = [NSDate date];
NSString *dateString = [formatter stringFromDate:currentDate];