Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 从字符串中获取日期;不是在UTC时间_Swift_Date - Fatal编程技术网

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

Swift 从字符串中获取日期;不是在UTC时间,swift,date,Swift,Date,我试图传入一个字符串并将其作为日期返回。但是,当我传入字符串时,返回的日期将作为UTC日期返回。我尝试了该问题的顶级解决方案,但未能找到Swift 4的正确解决方案: 我认为这是最好的方法,但仍然以UTC返回: func getDateFromDexReturnDateString(aDate : String) -> Date? { let dateFormatter = DateFormatter() dateFormatter.dateFor

我试图传入一个字符串并将其作为日期返回。但是,当我传入字符串时,返回的日期将作为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的问题,但我可能需要编辑问题的标题。谢谢您的帮助。

BriOnH,您的意思是当将返回的日期打印或记录到控制台或屏幕时,它会以UTC日期格式显示吗?如果希望使用UTC格式以外的日期字符串表示形式,则可以使用/调用所需区域设置对象的实例方法。有关详细说明,请单击链接查看该方法的文档。

没有“UTC日期”这样的东西。您误解了查看结果日期的输出。请参阅以更好地理解。这仅对调试有用。不要这样做以向用户显示日期。如果要在应用程序中显示日期,则应以应用程序用户期望的适当格式显示。您可以使用上面提到的日期格式化程序或日期描述(使用locale:locale?)方法来实现这一点。请查看此文档“不是我的投票”,而是“否”,不要使用
说明
向用户显示结果。使用
DateFormatter
。但这些都与问题无关。OP根本不理解查看
日期
实例的输出。感谢您的尝试,很抱歉它因为试图提供帮助而被否决。我编辑了这个问题。