私のサーバコールでは、1データあたりの日付時間をJSONデータで取得しています。今度はそれまでの経過時間を計算し、それをデータ構造にロードします。私が今やっているやり方は、今、長い道のりを踏み出しています。使用すべき別のデザインプラクティスはありますか?フォロー機能は、私が今スイフト - 経過時間の計算に時間がかかりますか?
func dateDiff(_ dateStr:String) -> String {
var timeAgo = "10m"
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd' 'HH:mm:ss"
formatter.timeZone = NSTimeZone(name: "AST") as! TimeZone
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd' 'HH:mm:ss"
dateFormatter.timeZone = NSTimeZone(name: "AST") as! TimeZone
let now = formatter.string(from: Date())
if let date = formatter.date(from: dateStr){
if let nowDate = formatter.date(from: now){
let components = Calendar.current.dateComponents([.day,.hour,.minute,.second], from: date, to: nowDate)
let sec = components.second
let min = components.minute
let hours = components.hour
let days = components.day
if (sec! > 0){
if let secc = sec {
timeAgo = "\(secc)s"
}
}
if (min! > 0){
if let minn = min {
timeAgo = "\(minn)m"
} }
if(hours! > 0){
if let hourss = hours {
timeAgo = "\(hourss)h"
}
}
if(days! > 0){
if let dayss = days {
timeAgo = "\(dayss)d"
}
}
}
}
return timeAgo
}
'formatter'と' dateFormatter'の違いはどこですか?後者は使用されていないようです。'Date()'を文字列に変換して 'Date'に戻すのはなぜですか? –
['DateComponentsFormatter'](https://developer.apple.com/documentation/foundation/datecomponentsformatter)を見てください。 –