Ios 转换为字符串问题时的日期时间更改

Ios 转换为字符串问题时的日期时间更改,ios,swift,xcode,nsdateformatter,Ios,Swift,Xcode,Nsdateformatter,我想从约会中减去分钟。BaseDate是我的日期,DateMin是从我的日期中减去的分钟数,这完全正常 let baseDate = "2020-03-06 06:00" //My date With format "yyyy-MM-dd HH:mm" let dateMinusMin = Calendar.current.date(byAdding: .minute, value: -(240), to: baseDate)! print(dateMinus4Hours) \\2020-03

我想从约会中减去分钟。BaseDate是我的日期,
DateMin
是从我的日期中减去的分钟数,这完全正常

let baseDate = "2020-03-06 06:00" //My date With format "yyyy-MM-dd HH:mm"

let dateMinusMin = Calendar.current.date(byAdding: .minute, value: -(240), to: baseDate)!
print(dateMinus4Hours) \\2020-03-06 02:00:00 +0000
但是,当我将日期转换为字符串时,时间发生了巨大的变化,显示的是
07:30
,而不是
02:00

  let modifyStr = Utill.getLocalStringFromDate("yyyy-MM-dd HH:mm Z", date: dateMinus4Hours, iden: "en_US_POSIX")
    print(modifyStr) \\ 2020-03-06 07:30 +0530
输出=2020-03-06 07:30+0530

函数将日期转换为字符串

 func getLocalStringFromDate(_ currentFormat:String,date:Date,iden:String) -> String {
        let formatter = DateFormatter()
        formatter.dateFormat = currentFormat
        formatter.locale = Locale(identifier: iden)
        return formatter.string(from: date)
    }

我在你的代码中没有发现任何问题。您可以在下图中看到结果

给定输入-06:00小时

输出-02:00小时(4小时减去您想要的时间)


日期不变,显示在不同的时区:“2020-03-06 02:00:00+0000”是UTC(=GMT+00)的日期,“2020-03-06 07:30+0530”是GMT+05:30时区的相同日期。我也尝试使用“UTC”,但得到相同的结果第一次输出是20:30:00+0000,因为它是UTC。如果您在时区+5:30转换,则它将在02:00I添加
formatter.timezone=timezone(secondsFromGMT:0)
到我的
getLocalStringFromDate
函数中,并为我工作。谢谢