【发布时间】:2016-11-03 19:38:14
【问题描述】:
假设用户在系统偏好设置的语言和地区部分设置了自定义日期格式。截图 - http://imgur.com/gallery/dMy8u
我在 NSString 表示 (eg - @"201603/11") 中有这个日期,我想将其转换为我自己的日期格式,即“MM/dd/yyyy”。我正在使用以下代码:
NSDateFormatter *formatter = [NSDateFormatter new];
formatter.dateFormat = [NSDateFormatter dateFormatFromTemplate:@"MM/dd/yyyy"
options:0
locale:[NSLocale systemLocale]];
[formatter setDateStyle:NSDateFormatterShortStyle];
NSDate *localDate = [formatter dateFromString:@"201603/11"];
但是 localDate 总是返回 nil。
简而言之,我的 NSString 表示是 201603/11(由用户设置的格式),我想用 NSDate 表示。
【问题讨论】:
-
您的日期格式化程序错误。 short 样式是将日期简写为字符串。
-
@TejaNandamuri,是的,问题出在我的日期格式化程序上。我已经删除了 dateStyle 属性,但是 localDate 仍然返回 nil。有什么线索吗?
-
[格式化程序 setDateFormat:@"yyyydd/MM"];
-
"yyyydd/MM" 是用户在首选项中设置的内容(请参见问题中的屏幕截图)。我有一个用户设置的格式的日期字符串表示。我想转换为“MM/dd/yyyy”中的 NSDate 表示。
-
它会给你一个日期,以后你可以把它转换成你需要的格式。首先您需要设置格式化程序以匹配用户设置字符串的格式。
标签: objective-c cocoa nsdateformatter