2015-04-07 29 views
0

当我使用NSDateformatter从字符串获取日期时,它返回错误的值。我不知道什么是必须的原因。请帮我解决。 在此先感谢。NSDateformatter没有提供正确的日期swift

Input String:- 

    newDate "06:11" 
    end time "07:00" 
    start time "05:00" 

    let dateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = "HH:mm" 
    let date:NSDate = dateFormatter.dateFromString(dateString)! 
    println(date) 

Output Date:- 
current date 2000-01-01 00:41:00 +0000 
end date 2000-01-01 01:30:00 +0000 
start date 1999-12-31 23:30:00 +0000 
+0

看起来我对swift一无所知,但它看起来像是在放一段时间,没有参考日期,并且系统可能(可能)默认为纪元日期加上你的时间 - 全部用UTC表示,而不是你的时区? –

+0

可能是问题是您的NSDate Object的println尝试println NSDate字符串。 –

+0

@NitinGohel如果我想知道什么是转换后的日期,那么我将如何知道这一点? –

回答

2

这样做

println(date) 

正在打印的日期,这等于说明 - 所以

println(date.description()) 

,它总是打印在UTC(GMT)时 如果您使用的是UTC + 5:30,则它将显示比您输入的时间早5:30小时的时间。如果您想在您的时区中打印日期,请再次使用NSDateFormatter。要查看其他时区的日期,请设置NSDateFormatter timeZone。

希望这解释。

+0

你意思是我应该再次将日期转换为字符串然后打印值? –

+0

是的,因为直接打印日期,打印它的描述,哪个苹果保存了一种标准的以UTC格式呈现的方式 –

+0

Thanx工作 –