Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.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
Ios 将12小时日期格式转换为24小时格式&;在swift中反之亦然?_Ios_Swift_Date_Nsdateformatter - Fatal编程技术网

Ios 将12小时日期格式转换为24小时格式&;在swift中反之亦然?

Ios 将12小时日期格式转换为24小时格式&;在swift中反之亦然?,ios,swift,date,nsdateformatter,Ios,Swift,Date,Nsdateformatter,我有一个朋友的约会。我以字符串形式获取日期,例如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() dateFormatt

我有一个朋友的约会。我以字符串形式获取日期,例如
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!)

  }

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

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

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

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

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

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

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

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

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

将本地时间字符串转换为其他本地时间字符串不需要在格式化程序上设置任何特定时区。唯一需要做的更改是通过将
H
更改为
H
来固定第一个日期格式。一旦完成,代码就可以正常工作。如果有任何问题,则应将格式化程序的区域设置设置为
en_US_POSIX
,以确保不会因设备上的24小时时间设置而出现问题。将本地时间字符串转换为其他本地时间字符串不需要在格式化程序上设置任何特定时区。唯一需要做的更改是通过将
H
更改为
H
来固定第一个日期格式。一旦完成,代码就可以正常工作。如果有任何问题,格式化程序的区域设置应设置为
en_US_POSIX
,以确保不会因为设备上24小时时间的设置而出现问题。