【发布时间】:2025-12-26 11:45:11
【问题描述】:
使用日期格式“EEEE:dd:MMM:HH:mm”返回正确的日期和时间,但是星期不正确。例如,以 7.5 节的速度进行 750 海里的航行将需要 100 小时。如果我使用我的代码来计算到达时间,例如 11 月 1 日星期五 12:00,它会返回 11 月 5 日星期日 16:00。时间和日期是正确的,但星期几不正确。应该是星期二。
@IBAction func Calculate(_ sender: UIButton) {
let userCalendar = Calendar.current
let dateMakerFormatter = DateFormatter()
dateMakerFormatter.dateFormat = "EEEE:dd:MMM:HH:mm"
let distance = (Distance.text! as NSString).floatValue
let speed = (GndSpd.text! as NSString).floatValue
let calcDT = ((distance / speed) * 3600)
if var date = dateMakerFormatter.date(from: (DTG.text!)) {
date = dateMakerFormatter.date(from: (DTG.text!))!
var timeAdj = DateComponents()
timeAdj.second = Int(calcDT)
if var adj = userCalendar.date(byAdding: timeAdj, to: date) {
adj = userCalendar.date(byAdding: timeAdj, to: date)!
CalcDTG.text = dateMakerFormatter.string(from: adj)
}
}
}
【问题讨论】:
-
日期是
d,而不是D。日期格式说明符中的大小写很重要。 -
您需要使用实际输入、实际结果和预期结果来更新您的问题。
-
以 7.5 节的速度行驶 750 海里就是 360,000 秒。即四天零四个小时。如果我使用代码将其添加到 11 月 1 日星期五 12:00,它应该会在 11 月 5 日星期二 16:00 返回。它实际上在 11 月 5 日星期日 16:00 返回。星期几不正确
-
请注明此问题已解决。然后将包含所有相关详细信息的新问题发布到您的新问题中。
标签: swift nsdateformatter