Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
Ios NSDateFormatter同时使用locale和dateFormat有意义吗?_Ios_Nsdateformatter - Fatal编程技术网

Ios NSDateFormatter同时使用locale和dateFormat有意义吗?

Ios NSDateFormatter同时使用locale和dateFormat有意义吗?,ios,nsdateformatter,Ios,Nsdateformatter,这有意义吗?我认为dateFormat本身精确地指定了输出,不是吗?如果需要解析日期,可以同时使用这两种格式: let formater = DateFormatter() let enDateString = "2019, 16 January" formater.locale = Locale(identifier: "en_US") formater.dateFormat = "yyyy, dd MMMM" let enDate = formater.date(from: enDateS

这有意义吗?我认为dateFormat本身精确地指定了输出,不是吗?

如果需要解析日期,可以同时使用这两种格式:

let formater = DateFormatter()
let enDateString = "2019, 16 January"
formater.locale = Locale(identifier: "en_US")
formater.dateFormat = "yyyy, dd MMMM"

let enDate = formater.date(from: enDateString)
print(enDate) // display: Optional(2019-01-16 00:00:00 +0000)

let frDateString = "16 janvier 2019"
formater.locale = Locale(identifier: "fr_FR")
formater.dateFormat = "dd MMMM yyyy"

let frDate = formater.date(from: frDateString)
print(frDate) // display: Optional(2019-01-16 00:00:00 +0000)

这里,
dateFormat
中的
MMMM
模式允许您在目标
区域设置中以纯文本形式解析月份

请澄清您的问题。不清楚。当你说“local”时,你真的是指“locale”吗?对不起,是的,
locale
。在向用户显示日期时,无论使用哪种语言环境,都不应该使用
dateFormat
。使用
dateStyle
timeStyle
。设置区域设置和使用
dateFormat
在很大程度上是矛盾的。仅在需要解析固定格式日期字符串或需要生成固定格式字符串以发送到服务器或类似对象时使用
dateFormat
。您知道,使用此字符串
local
有意义吗?这里没有纯文本或类似格式的月份,只有数字:
dd/MM/yyyy HH:MM
@János当您使用这样的固定格式时,您需要使用特殊区域设置
en_US_POSIX
。Hi@rmaddy!为什么?@János-See