为什么 NSDate 字符串中有一些奇怪的字符
why is some strange character in NSDate string
我正在使用以下代码获取日期时间。我会 post 他们到服务器
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let strDate = dateFormatter.stringFromDate(NSDate())
在服务器中,我发现有几个日志有奇怪的数据。它被编码为 "date": "\u0662\u0660\u0661\u0666-\u0660\u0664-\u0661\u0660 \u0661\u0668:\u0665\u0669:\u0664\u0663"
我发现它们在UTF16中显示为٢٠١٦-٠٤-١٠ ١٨:٥٩:٤٣
,这是什么问题,似乎日期格式是正确的,但为什么year-month-day hour:minitue:seconds
变得无效。谢谢~
这些是完全有效的年、月、日等:根据您的代码,我们可以看到您已决定接受任何区域设置的值,包括非阿拉伯数字。
只需在格式化程序上设置语言环境:
let dateFormatter = NSDateFormatter()
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
en_US_POSIX
是一个永远不会改变的标准化语言环境(即使美国要改变它的编码方式)。
正如 A-Live 所指出的,这些是有效数字和有效日期。它们不是西方阿拉伯数字 (0123456789)。它们是东阿拉伯数字 (٠١٢٣٤٥٦٧٨٩)。 stringFromDate()
使用来自格式化程序的语言环境。如果您不设置,它将使用系统区域设置。如果你想要一个特定的,请设置它。
有关详细信息,请参阅 QA1480。
我正在使用以下代码获取日期时间。我会 post 他们到服务器
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let strDate = dateFormatter.stringFromDate(NSDate())
在服务器中,我发现有几个日志有奇怪的数据。它被编码为 "date": "\u0662\u0660\u0661\u0666-\u0660\u0664-\u0661\u0660 \u0661\u0668:\u0665\u0669:\u0664\u0663"
我发现它们在UTF16中显示为٢٠١٦-٠٤-١٠ ١٨:٥٩:٤٣
,这是什么问题,似乎日期格式是正确的,但为什么year-month-day hour:minitue:seconds
变得无效。谢谢~
这些是完全有效的年、月、日等:根据您的代码,我们可以看到您已决定接受任何区域设置的值,包括非阿拉伯数字。
只需在格式化程序上设置语言环境:
let dateFormatter = NSDateFormatter()
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
en_US_POSIX
是一个永远不会改变的标准化语言环境(即使美国要改变它的编码方式)。
正如 A-Live 所指出的,这些是有效数字和有效日期。它们不是西方阿拉伯数字 (0123456789)。它们是东阿拉伯数字 (٠١٢٣٤٥٦٧٨٩)。 stringFromDate()
使用来自格式化程序的语言环境。如果您不设置,它将使用系统区域设置。如果你想要一个特定的,请设置它。
有关详细信息,请参阅 QA1480。