1
タイムスタンプをサーバーから変換しようとしていますが、変換もされていますが、月が間違っています。タイムスタンプは1492747393892で、21/03/17 - 12:03 PMに変換されますが、 21/04/17 - 12:03 PMにする必要があります。 はここにあなたのコード内の主なエラーが(分)で、「MM」ではなく、「ミリメートル」である必要があり、月、 の間違った日付形式である私のコード迅速なUNIXタイムスタンプ変換の問題3
var arriveTimestamp: Int
if let timeStampToDate = arriveTimestamp {
let timeSt = Date(jsonTimeDate:"/Date(\(timeStampToDate))/")
let time = Date().dateTime(date: timeSt!)
valueLbl.text = time
}
init?(jsonTimeDate: String) {
// "/Date(1487058855745)/"
let prefix = "/Date("
let suffix = ")/"
let scanner = Scanner(string: jsonTimeDate)
// Check prefix:
guard scanner.scanString(prefix, into: nil) else { return nil }
// Read milliseconds part:
var milliseconds : Int64 = 0
guard scanner.scanInt64(&milliseconds) else { return nil }
// Milliseconds to seconds:
var timeStamp = TimeInterval(milliseconds)/1000.0
// Read optional timezone part:
var timeZoneOffset : Int = 0
if scanner.scanInt(&timeZoneOffset) {
let hours = timeZoneOffset/100
let minutes = timeZoneOffset % 100
// Adjust timestamp according to timezone:
timeStamp += TimeInterval(3600 * hours + 60 * minutes)
}
// Check suffix:
guard scanner.scanString(suffix, into: nil) else { return nil }
// Success! Create NSDate and return.
self.init(timeIntervalSince1970: timeStamp)
}
func dateTime(date: Date) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/mm/yy - hh:mm a"
return dateFormatter.string(from: date as Date)
}
それはおそらく 'のinit(jsonTimeDate:String)を、スタンドとしてあなたのコードがコンパイルされません?'メソッド(これは驚くほどhttp://stackoverflow.com/a/28854733/1187415のコードと似ています:)と 'dateTime'メソッドは'拡張Date {} 'の中になければなりません。 –
それ以外は、月の日付形式が間違っています。「mm」ではなく「MM」でなければなりません。 –
"mm"を "MM"に変更して機能しました。助けてくれてありがとう。 – manku