我正在尝试传递一个字符串并将其作为日期返回。但是,当我传入字符串时,返回的日期将作为UTC日期返回。我尝试了这个问题的最佳解决方案,但找不到Swift 4的正确解决方案:
我认为这是最好的方法,但仍然以UTC返回:
func getDateFromDexReturnDateString(aDate : String) -> Date?
{
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
dateFormatter.timeZone = TimeZone.current //Thought these two lines would solve it, but doen't
dateFormatter.locale = Locale.current
return dateFormatter.date(from: aDate)!
}
请注意,我传递的日期(aDate)与返回的日期(dateToReturn)不同。为什么不一样呢?我认为这是UTC问题,但是我可能需要编辑问题标题。感谢您的帮助。
答案 0 :(得分:0)
BriOnH,您是说在将返回的日期打印或记录到控制台或屏幕时,它以UTC日期格式显示吗?如果要使用UTC格式以外的日期的字符串表示形式,则可以对所需的语言环境对象使用/调用实例方法description(with locale: Locale?)。有关详细说明,请单击链接以查看该方法的文档。