Swift 试图获取当前时间,但它给了我错误的时间
我想知道现在的日期。当前日期和时间是Swift 试图获取当前时间,但它给了我错误的时间,swift,date,swift5,Swift,Date,Swift5,我想知道现在的日期。当前日期和时间是2019-12-16 05:12:59,但我得到2019-12-16 10:12:59。 let dateAdded=itemDict[“time”]as!一串 设df=DateFormatter() df.dateFormat=“yyyy-MM-dd hh:MM:ss” 让currentTime=df.date(from:dateAdded) 让dateTime=currentTime!。添加时间间隔(60.0*60.0) 让currentDate=Dat
2019-12-16 05:12:59
,但我得到2019-12-16 10:12:59。
let dateAdded=itemDict[“time”]as!一串
设df=DateFormatter()
df.dateFormat=“yyyy-MM-dd hh:MM:ss”
让currentTime=df.date(from:dateAdded)
让dateTime=currentTime!。添加时间间隔(60.0*60.0)
让currentDate=Date()
不使用格式获取当前时间,只需添加以下内容:
let currentDateTime = Date()
print(currentDateTime)
但是,如果要检索“字符串”并将其转换为日期,可以执行以下操作:
let dateAdded = itemDict["time"] as! String
//Convert string to date
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm"
let date = dateFormatter.date(from: dateAdded!)
如果你仍然得到错误的时间,你应该添加时区。在这种情况下,代码如下所示:
let dateAdded = itemDict["time"] as! String
//Convert string to date
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm"
dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
let date = dateFormatter.date(from: dateAdded!)
如果您使用大写字母“HH”,则表示您使用的是24小时时钟。否则请使用小写字母“hh”。尝试以下操作:
Date().toCurrentTimezone()
extension Date {
func toCurrentTimezone() -> Date {
let timeZoneDifference =
TimeInterval(TimeZone.current.secondsFromGMT())
return self.addingTimeInterval(timeZoneDifference)
}
}
您需要在日期格式化程序中设置本地时区
//Get local time Zone
var localTimeZoneIdentifier: String { return TimeZone.current.identifier }
print("local Time zone: " + localTimeZoneIdentifier)
let inputdateString: String = "2019-12-16 05:12:59"
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: localTimeZoneIdentifier)
dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss"
let inputDate = dateFormatter.date(from: inputdateString )!
print("Output date: \(String(describing: inputDate))")
输出:-
local Time zone:-Asia/Kolkata
Output date: 2019-12-15 23:42:59 +0000
你也需要设置时区。你转换的字符串是什么?(全部)你什么时候到?这不编译。
toCurrentTimezone
方法从何而来?@MartinR您添加了扩展名吗?