从字符串获取日期;不在UTC时间

时间:2018-06-20 02:22:19

标签: swift date

我正在尝试传递一个字符串并将其作为日期返回。但是,当我传入字符串时,返回的日期将作为UTC日期返回。我尝试了这个问题的最佳解决方案,但找不到Swift 4的正确解决方案:

Swift convert string to date

我认为这是最好的方法,但仍然以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)!
    }

编辑: 这是正在发生的情况的图片: Debugging Values

请注意,我传递的日期(aDate)与返回的日期(dateToReturn)不同。为什么不一样呢?我认为这是UTC问题,但是我可能需要编辑问题标题。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

BriOnH,您是说在将返回的日期打印或记录到控制台或屏幕时,它以UTC日期格式显示吗?如果要使用UTC格式以外的日期的字符串表示形式,则可以对所需的语言环境对象使用/调用实例方法description(with locale: Locale?)。有关详细说明,请单击链接以查看该方法的文档。