(Swift) 使用带有中型字符串的 NSDataFormatter 获取日期
(Swift) Using NSDataFormatter with a medium style string to get date
我似乎被困在这里,我在这上面浪费了太多的时间。
我有一个 RFC 1123 格式的字符串,我想从中获取日期,但无论我做什么,我得到的结果都是零;
let dateFormat = NSDateFormatter();
dateFormat.dateStyle = .MediumStyle;
dateFormat.dateFormat = "EEE',' dd MMM yyyy HH':'mm':'ss z";
dateFormat.locale = NSLocale.systemLocale();
dateFormat.timeZone = NSTimeZone(abbreviation:"GMT");
var currentDate = dateFormat.dateFromString("Sun, 28 Jun 2015 04:30:54 GMT");
我不确定我遗漏了什么,如果我将 MMM 更改为 MM 并将 Jun 06 设为 Jun 06,那么就可以了。好像只有这个例子。我已经尝试移动 dateFormat 的创建顺序,但仍然没有结果。对此问题的任何帮助将不胜感激
我认为您混淆了格式化程序。您不需要设置格式字符串以外的任何内容,因为格式化程序的工作是从它读取的字符串中学习其他设置。
let dateFormat = NSDateFormatter()
dateFormat.dateFormat = "EEE',' dd MMM yyyy HH':'mm':'ss z"
var currentDate = dateFormat.dateFromString("Sun, 28 Jun 2015 04:30:54 GMT")
// "Jun 27, 2015, 11:30 PM"
如果您按上述方式操作,它将根据您提供的日期字符串 return 一个 NSDate?
。
我似乎被困在这里,我在这上面浪费了太多的时间。
我有一个 RFC 1123 格式的字符串,我想从中获取日期,但无论我做什么,我得到的结果都是零;
let dateFormat = NSDateFormatter();
dateFormat.dateStyle = .MediumStyle;
dateFormat.dateFormat = "EEE',' dd MMM yyyy HH':'mm':'ss z";
dateFormat.locale = NSLocale.systemLocale();
dateFormat.timeZone = NSTimeZone(abbreviation:"GMT");
var currentDate = dateFormat.dateFromString("Sun, 28 Jun 2015 04:30:54 GMT");
我不确定我遗漏了什么,如果我将 MMM 更改为 MM 并将 Jun 06 设为 Jun 06,那么就可以了。好像只有这个例子。我已经尝试移动 dateFormat 的创建顺序,但仍然没有结果。对此问题的任何帮助将不胜感激
我认为您混淆了格式化程序。您不需要设置格式字符串以外的任何内容,因为格式化程序的工作是从它读取的字符串中学习其他设置。
let dateFormat = NSDateFormatter()
dateFormat.dateFormat = "EEE',' dd MMM yyyy HH':'mm':'ss z"
var currentDate = dateFormat.dateFromString("Sun, 28 Jun 2015 04:30:54 GMT")
// "Jun 27, 2015, 11:30 PM"
如果您按上述方式操作,它将根据您提供的日期字符串 return 一个 NSDate?
。