2016-11-26 144 views
0

我有一个来自UIControl的日期。我获得日期作为字符串,如06-12-2016 01:25 PM。现在我想将它转换为2016-12-06 13:25:00的格式我已经尝试了下面的代码t这样做,但它只是给了我ex错误的日期。 2016-12-06 18:55:00。我为此使用了以下代码:将12小时日期格式转换为24小时格式,反之亦然?

func converStingToDate(str_date:String)->String 
    { 

    let dateFormatter = DateFormatter() 
    dateFormatter.dateFormat = "dd-MM-yyyy H:mm a" 
    let date = dateFormatter.date(from: str_date) 
    dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" 
    return dateFormatter.string(from: date!) 

    } 

请给我一个更好的代码。另外如果你们可以帮助我理解所有这些日期格式化概念是如何完成的?

回答

3

代码是正确的,日期是正确的(尽管你应该使用h 12小时小时)。

您的时区为UTC+0530print()显示日期UTC

如果需要print正确的本地时间格式化的时区设置为UTC:

dateFormatter.timeZone = TimeZone(abbreviation: "UTC")` 
+1

转换本地时间字符串到不同的本地时间字符串不需要设置的格式化任何特定的时区。唯一需要做的改变是通过将'H'改为'h'来修正第一个日期格式。一旦完成,代码工作正常。如果有的话,格式器的区域设置应该设置为'en_US_POSIX',以确保没有问题,因为在设备上设置24小时的时间不会妨碍。 – rmaddy

+0

我仍然能够转换成正确的格式 – Techiee

相关问题