【发布时间】:2019-06-14 05:09:20
【问题描述】:
我正在尝试在两个小时之间应用一些计算。
我从 Firebase 收到了字符串格式 (HH:mm) 的太多小时数,我尝试将其转换为日期格式 (HH:mm)。然后在再次转换为字符串之前应用计算并将其播种到 Firebase 中的存档中。
我的代码:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm"
ref.child("Experience").child(userID!).observeSingleEvent(of: .value) {(snapshot) in
if let value = snapshot.value as? [String:String]{
let value = snapshot.value as? NSDictionary
let total_time = value?["TOTAL_TIME"] as? String ?? "00:00" // Received from Firebase
self.oldDateTotalTime = dateFormatter.date(from: total_time)! //trying to convert into a Date format
print(self.oldDateTotalTime)
self.oldStringTotalTime = total_time //just for test
}
这段代码不起作用,我认为是dateFormatter。
我的问题是:
- 如何从我的
String获取我的Date? - 如何从我的
Date获取我的String?
编辑:
为了准确我的问题,我的目标是从总时间值中减去一个时间值。我有一个完整的用户体验,即 700 H 50 分钟,在 Firebase 上给出如下:700:50。在另一部分,我有一些具体的经验,即 1 小时 40 分钟,在火力基地的 1:40 之前给出。
我的要求是从全局中减去特定的经验。
700:50 - 1:40 = 699:10
根据我目前的 Swift 经验,我只使用 Date() 和 DateFormatter 来处理时间,我不知道如何只处理时间而不是日期......
希望您能通过我的编辑更好地理解这一点
【问题讨论】:
-
你的目标是什么?将诸如“14:30”之类的字符串转换为
Date对您意味着什么?你预计哪一天、哪一个月、哪一年?为什么要将时间字符串转换为日期? -
你指的是什么计算?您发布的代码仅尝试使用单个时间字符串。请edit您的问题并充分说明您要做什么以及遇到什么问题。不要用 cmets 回复。
-
didn't work是什么意思?是否有任何错误被抛出?你的行为是什么? -
对于没有日期信息的时间计算
DateComponents更可取 -
我已经编辑了我的请求,希望这对您来说更容易理解!
标签: swift string date type-conversion