Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 当日期格式不';我没有具体说明_Objective C_Nsdateformatter - Fatal编程技术网

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如果你想提交你的评论作为答案,我会将其标记为接受。你的评论起了作用。非常感谢。