Objective c 当日期格式不';我没有具体说明
我有一个简单的代码,可以将日期转换为字符串:Objective c 当日期格式不';我没有具体说明,objective-c,nsdateformatter,Objective C,Nsdateformatter,我有一个简单的代码,可以将日期转换为字符串: +(NSString*)dateStringFromDate:(NSDate*)日期{ NSDateFormatter*dateFormatter=[[NSDateFormatter alloc]init]; [dateFormatter setDateFormat:@“yyyy-MM-dd'T'HH:MM:ss'Z'”; 返回[dateFormatter stringFromDate:date]; } 我希望字符串如下所示: 2020-10-19
+(NSString*)dateStringFromDate:(NSDate*)日期{
NSDateFormatter*dateFormatter=[[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@“yyyy-MM-dd'T'HH:MM:ss'Z'”;
返回[dateFormatter stringFromDate:date];
}
我希望字符串如下所示:
2020-10-19T11:55:29Z
但它输出的是如下所示的字符串:
2020-10-19T12:38:06 p.m.Z
注意输出中的“p.m.”。我没有使用“a”日期格式字符,所以我不希望看到am或PM
当我在模拟器中运行代码时,它会产生正确的结果。当我在运行iPadOS 14.0.1的物理iPad上运行它时,会产生不正确的结果
我注意到,使用此命令强制使用区域设置可以解决此问题:
dateFormatter.locale=[NSLocale localewithlocaleignifier:@“en_US_POSIX”];
但是,我不确定这是否是正确的方法,因为这似乎是一个bug
有人能解释为什么会发生这种情况吗?这是因为
NSDateFormatter
的默认本地设置。但是如果你看“am/mp”+NSDateFormatter+en_us_posix”,你会发现很多“问题”“。因此,是的,您需要使用en_us_posix。我猜你在iPad上使用的是AM/MP系统,不是吗?但是你可能对这个项目感兴趣。谢谢你的回复。在iPadOS 14之前,这不是一个问题,有什么原因吗?我们在14.x之前从未见过这种情况。@Larme如果你想提交你的评论作为答案,我会将其标记为接受。你的评论起了作用。非常感谢。这是因为NSDateFormatter
的默认本地设置。但是如果你看“am/mp”+NSDateFormatter+en_us_posix”,你会发现很多“问题”“。因此,是的,您需要使用en_us_posix。我猜你在iPad上使用的是AM/MP系统,不是吗?但是你可能对这个项目感兴趣。谢谢你的回复。在iPadOS 14之前,这不是一个问题,有什么原因吗?我们在14.x之前从未见过这种情况。@Larme如果你想提交你的评论作为答案,我会将其标记为接受。你的评论起了作用。非常感谢。