将12小时日期格式转换为24小时格式&反之亦然?

时间:2016-11-26 10:40:21

标签: ios swift date nsdateformatter

我有一个来自UIControl的日期。我将日期作为字符串,例如06-12-2016 01:25 PM。现在我想将其转换为格式为2016-12-06 13:25:00我已尝试过以下代码来执行此操作,但它只是给了我错误的日期。 2016-12-06 18:55:00。我使用下面的代码:

 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!)

  }

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

1 个答案:

答案 0 :(得分:3)

代码正确且日期正确(尽管您应该使用h 12小时)。

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

如果您需要print正确的本地时间,请将格式化程序的时区设置为UTC:

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