Ios 为什么NSDate字符串中有奇怪的字符

Ios 为什么NSDate字符串中有奇怪的字符,ios,swift,nsdate,nsdateformatter,Ios,Swift,Nsdate,Nsdateformatter,我使用下面的代码来获取日期时间。我会把它们发布到服务器上 let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" let strDate = dateFormatter.stringFromDate(NSDate()) 在服务器上,我发现有几个日志有奇怪的数据。编码为“日期”:“\u0662\u0660\u0661\u0666-\u0660\u0664-\u0661\u0660

我使用下面的代码来获取日期时间。我会把它们发布到服务器上

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let strDate = dateFormatter.stringFromDate(NSDate())
在服务器上,我发现有几个日志有奇怪的数据。编码为“日期”:“\u0662\u0660\u0661\u0666-\u0660\u0664-\u0661\u0660\u0661\u0668:\u0665\u0669:\u0664\u0663”


我发现它们在UTF16中显示为
٠٠٦-٠٠-٠٠:٣:٣٣
,问题是什么,日期格式似乎是正确的,但为什么
年-月-日-小时:分钟:秒
变得无效。谢谢~

这些是完全有效的年、月、日等:根据您的代码,我们可以看到您已决定接受任何区域设置的值,包括非阿拉伯数字。

这些是完全有效的年、月、日等:根据您的代码,我们可以看到您已决定接受任何区域设置的值,包括非阿拉伯数字。

只需在格式化程序上设置区域设置:

let dateFormatter = NSDateFormatter()
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
en_US_POSIX
是一个永远不会改变的标准化语言环境(即使美国改变了编码方式)

作为A-Live备忘,这些是有效数字和有效日期。它们不是西方阿拉伯数字(0123456789)。它们是东方阿拉伯数字
stringFromDate()
使用格式化程序中的区域设置。如果没有设置,它将使用系统区域设置。如果你想要一个特别的,设置它


有关详细信息,请参阅。

只需在格式化程序上设置区域设置:

let dateFormatter = NSDateFormatter()
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
en_US_POSIX
是一个永远不会改变的标准化语言环境(即使美国改变了编码方式)

作为A-Live备忘,这些是有效数字和有效日期。它们不是西方阿拉伯数字(0123456789)。它们是东方阿拉伯数字
stringFromDate()
使用格式化程序中的区域设置。如果没有设置,它将使用系统区域设置。如果你想要一个特别的,设置它


有关详细信息,请参阅。

它肯定与Swift日期格式无关。检查数据是如何发送到服务器和在服务器上处理的。服务器刚刚保存了客户端发送数据,大部分数据都是正确的,客户端也是http post数据,现在我没有客户端环境,所以不知道客户端发送了什么。@Jerryyrain您在操作中基本上回答了自己的“问题”。。。你到底在找什么?我怎么知道它的真实数据(非阿拉伯数字),如果我想在任何地区,日期可以是数字,我该怎么做?它肯定与Swift日期格式无关。检查数据是如何发送到服务器和在服务器上处理的。服务器刚刚保存了客户端发送数据,大部分数据都是正确的,客户端也是http post数据,现在我没有客户端环境,所以不知道客户端发送了什么。@Jerryyrain您在操作中基本上回答了自己的“问题”。。。你到底在找什么?我怎么知道它的真实数据(非阿拉伯数字),如果我想在任何地区,日期可以是数字,我该怎么做?是的,我的应用程序将运行所有地区,所以我想知道这个地区是什么,我怎么知道它的真实数据(非阿拉伯数字),如果我想在任何地区,日期可以是数字,我该怎么做?你绝对不能限制应用程序可以启动的区域设置,我想说的是,你没有正确地支持所有的区域设置,因为你应该使用这些依赖于区域设置的接口。我不知道这是哪种语言环境,也许你可以自己找到使用这种数字的语言环境。如果您不确定这些是数字,请再说一遍-您可以随时查找。至于每个人如何避免这个问题,日期通常不是以格式化文本的形式发送,而是以时间戳的形式发送。是的,我的应用程序将运行所有区域设置,因此我想知道这个本地是什么,如何知道它的真实数据(非阿拉伯数字),如果我想在任何区域设置中发送,日期可以是数字,我该怎么做?你绝对不能限制应用程序可以启动的区域设置,我想说的是,你没有正确地支持所有的区域设置,因为你应该使用这些依赖于区域设置的接口。我不知道这是哪种语言环境,也许你可以自己找到使用这种数字的语言环境。如果您不确定这些是数字,请再说一遍-您可以随时查找。至于每个人如何避免这个问题,日期通常不是以格式化文本的形式发送,而是以时间戳的形式发送。