ios中从字符串到NSDate的日期转换
Posted
技术标签:
【中文标题】ios中从字符串到NSDate的日期转换【英文标题】:Date conversion from string to NSDate in ios 【发布时间】:2014-10-24 07:17:29 【问题描述】:我已经在互联网上搜索了很长时间才能得到这个,但我找不到解决方案。我从网络服务收到一个日期字符串为"22 May 2014"
,我必须转换为NSDate
格式以检查当前日期。我必须从网络服务中找出日期是将来还是过去。
实际的问题是当我使用转换它时
NSDate *date;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd MMMM YYYY"];
date = [dateFormatter dateFromString:dateString];
但我得到一个完全不同的日期,示例输入 dateString:22 June 2014
和我得到的输出是 2013-12-21 18:30:00+0000
请提出任何解决方案。
提前致谢。 :)
【问题讨论】:
你是对的@Jon Skeet..@Sudheesh 请参考这篇文章***.com/questions/3917250/… 【参考方案1】:您使用的是YYYY
,这并不意味着您认为它意味着什么。在TR35-31 文档中,Y
是“年历中的年”的符号。
您希望 dd MMMM yyyy
作为您的格式字符串。混合使用基于周的字段和常规的日/月/年字段会导致奇怪的问题。
此外,您可能希望在格式化程序中设置时区 - 如果您只是解析日期,那么您应该考虑使用 UTC,并确保所有您的计算和格式/parsing 使用 UTC。
(我怀疑这里的问题是尚未设置一年中的一周,因此假定为 1 ......并且 2014 年的一周年开始于 12 月 30 日。那么月中的日期是由 dd 部分设置为 22,然后考虑您的 UTC+05:30 时区偏移量。)
【讨论】:
感谢@Jon Skeet 的突然回复,我已经检查过了,发现工作正常。 该死的乔恩,你无处不在,即使在 ios 标记的问题上也是如此。有什么标签我找不到你吗? :)以上是关于ios中从字符串到NSDate的日期转换的主要内容,如果未能解决你的问题,请参考以下文章