2016-05-13 46 views
-1

我有一个问题,将字符串转换为NSDate。在我的文本字段中,当用户点击它时,可以选择使用UIDatePicker的日期。 StringTextField日期看起来像这样:“YYYY-MM-DD”现在,当我尝试使用这种方法迄今为止例如转换上2016年5月13日:不良转换字符串到NSDate

func changeStringToNSDate(){ 

let dateFormatter = NSDateFormatter() 
dateFormatter.dateFormat = "yyyy-mm-dd" 
let from = moreSorts.fromDatePickerTextField.text! 
let fromDate = dateFormatter.dateFromString(from) 

print(fromDate) 

} 

当我打印fromDate我收到一封信息fromDate不是2016-05-13而是2016-01-11 23:58:00 +0000。我不知道为什么我在2016-01-11时在我的TextField字符串显示2016-05-13

+1

您需要使用正确的日期格式说明。看看文档。 – rmaddy

+0

你能写我正确的格式吗? – PiterPan

+1

看看文档,看看你能否弄清楚你做错了什么。这是一项重要的技能。 – rmaddy

回答

1

很难判断您提供的信息可能会出错。在斯威夫特游乐场我收到2016年1月13日,而不是2016年1月11日,但如果我更改日期格式,我可以得到2016年5月13日:

dateFormatter.dateFormat = "yyyy-MM-dd" 

大写的MM是关键。我想看看这个网站玩的日期格式选项:

http://nsdateformatter.com

+0

当我更正为yyyy-MM-dd后打印'fromDate'时,我比平时少了一天。这意味着在字符串我有2016-05-13,但是当我打印'从日期'我收到2016-05-12。任何建议为什么? – PiterPan

+0

我可能会查看有关NSDate时区处理的文档。不知道更多,我不能提供更多有用的建议。随着文档和快速操场的尝试和错误可能是你最好的选择。 –

+0

非常感谢您的帮助! – PiterPan