Ios 转换为字符串问题时的日期时间更改
我想从约会中减去分钟。BaseDate是我的日期,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
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
函数中,并为我工作。谢谢