如何在不更改格式的情况下将字符串转换为日期

时间:2020-04-18 07:01:55

标签: swift

我正在使用Xcode 11.4.1 在我的项目中,我得到了一个包含一些数据的字符串,我需要将其拆分并将信息保存在一些变量中。 现在,如果我尝试这样做,我会遇到问题

        let dateString = "12-04-2020"
        let dateFormatIn = DateFormatter()
        dateFormatIn.dateFormat = "dd-MM-yyyy"
        let saveDate: Date = dateFormatIn.date(from: dateString)!

        print("The date is: \(saveDate)")

我期望的结果是“日期是:12-04-2019”,但是我得到的是“日期是:2020-04-11 15:00:00 +0000” 我想念什么,这是什么印刷日期?这不是当前日期,也不是字符串! 我需要的日期格式与字符串中的日期格式相同。

2 个答案:

答案 0 :(得分:0)

let saveDate: Date = dateFormatIn.date(from: dateString)!

“:Date”看起来像数据类型声明。您的意思是,“创建类型为saveDate的名为Date的变量,并从dateFormatIn.date(from: dateString)的输出中对其进行初始化。”

因此,您不打印格式输出。您正在将格式化的输出转换为新的Date对象,然后打印那个

尝试:

let saveDate = dateFormatIn.date(from: dateString)!

这应该保存dateFormatIn.date(from: dateString)saveDate中返回的内容。

答案 1 :(得分:0)

  • Date是一个时间点,它没有格式也没有时区。
  • print显示UTC时区中日期的描述(字符串表示形式)。
  • 您的时区显然是UTC +0900,2020-04-12 00:00:00 +09002020-04-11 15:00:00 +0000是同一时间点。
  • 如果要创建与时区无关的日期字符串,请添加行

    dateFormatIn.timeZone = TimeZone(secondsFromGMT: 0)