从 unix 时间戳获取日期和时间
Getting date and time from unix timestamp
我正在尝试从 unix 时间戳获取当前日期和时间,但它总是给我错误的日期这是我当前的代码
func getDateFromStamp(timeInterval:Int) -> String{
let date = NSDate(timeIntervalSince1970: TimeInterval(timeInterval))
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEEE, MMM d, h:mm a"
let dateString = dateFormatter.string(from: date as Date)
return dateString
}
通常 unix 时间戳以毫秒为单位,但 Date 使用秒。您可能需要将时间戳除以 1000。
可能的错误:
我尝试使用毫秒而不是秒。 timeIntervalSince1970: TimeInterval
使用秒。预先将 timeInterval
除以 1000。
或者您没有设置TimeZone。
不要忘记使用 Date()
而不是 NSDate()
这取决于你的结果和输入的参数。
编辑
要更改时区,请使用此代码:
dateFormatter.timeZone = TimeZone(abbreviation: "GMT+01:00")
对于Swift 4:
步骤:-1 转换为日期:
let timestamp = "Your TimeStamp here"
var dateFromTimeStamp = Date(timeIntervalSince1970: timestamp as! TimeInterval / 1000)
步骤:-2 转换为合适的时区:
let dateFormatter = DateFormatter();
let dateFormat = "dd MMM yyyy"; //Any TimeFormat you want
dateFormatter.dateFormat = dateFormat;
let formattedDate = dateFormatter.string(from: dateFromTimeStamp);
dateFormatter.locale = NSLocale.current;
dateFormatter.timeZone = TimeZone(abbreviation: "GMT"); //Pass Appropriate time zone here.
dateFormatter.dateFormat = dateFormat as String;
let sourceDate = dateFormatter.date(from: formattedDate as String);
print(sourceDate)
希望对您有所帮助。
我正在尝试从 unix 时间戳获取当前日期和时间,但它总是给我错误的日期这是我当前的代码
func getDateFromStamp(timeInterval:Int) -> String{
let date = NSDate(timeIntervalSince1970: TimeInterval(timeInterval))
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEEE, MMM d, h:mm a"
let dateString = dateFormatter.string(from: date as Date)
return dateString
}
通常 unix 时间戳以毫秒为单位,但 Date 使用秒。您可能需要将时间戳除以 1000。
可能的错误:
我尝试使用毫秒而不是秒。 timeIntervalSince1970: TimeInterval
使用秒。预先将 timeInterval
除以 1000。
或者您没有设置TimeZone。
不要忘记使用 Date()
而不是 NSDate()
这取决于你的结果和输入的参数。
编辑
要更改时区,请使用此代码:
dateFormatter.timeZone = TimeZone(abbreviation: "GMT+01:00")
对于Swift 4:
步骤:-1 转换为日期:
let timestamp = "Your TimeStamp here"
var dateFromTimeStamp = Date(timeIntervalSince1970: timestamp as! TimeInterval / 1000)
步骤:-2 转换为合适的时区:
let dateFormatter = DateFormatter();
let dateFormat = "dd MMM yyyy"; //Any TimeFormat you want
dateFormatter.dateFormat = dateFormat;
let formattedDate = dateFormatter.string(from: dateFromTimeStamp);
dateFormatter.locale = NSLocale.current;
dateFormatter.timeZone = TimeZone(abbreviation: "GMT"); //Pass Appropriate time zone here.
dateFormatter.dateFormat = dateFormat as String;
let sourceDate = dateFormatter.date(from: formattedDate as String);
print(sourceDate)
希望对您有所帮助。