将小时从 12 小时制转换为 24 小时制 Swift 并保存为整数
Convert hours form 12 hour time to 24 hour time Swift and save as an integer
我想将整数小时变量转换为 24 小时制(例如,如果是 01:05:13 下午,小时将保存为 13,分钟将保存为 5 ,秒数将保存为 13),这样我可以稍后在我的代码中使用它进行一些数学运算,以找出我正在使用的计划应用程序的一些差异。这是我的第一个应用程序,我在其他任何地方都找不到答案,所以感谢您的帮助!这段代码的另一种工作方式是从一天开始以秒为单位获取数量,如果有人知道如何做到这一点,我们将不胜感激!
这是我获取时间并将其保存为小时、秒和分钟的三个不同整数的函数:
@IBAction func setTime() {
var date = NSDate()
//pickTimes()
var calendar = NSCalendar.current
calendar.timeZone = TimeZone(identifier: "UTC")!
var currentHour = calendar.component(.hour, from: date as Date) + 5
let currentMinutes = calendar.component(.minute, from: date as Date)
let currentSeconds = calendar.component(.second, from: date as Date)
timeText.text = ("\(currentHour):\(currentMinutes):\(currentSeconds)")
}
calendar.component(.hour, from: someDate)
已经为您提供了一天中的 24 小时时间,因此无需执行其他操作即可解决您的问题。
- 不确定为什么要将
5
添加到小时。您将时区设置为 UTC,因此日期将被视为 UTC 时区。然后将 5 添加到该结果。这有点奇怪。如果您只想要用户区域设置时区中的当前小时,请不要更改日历的时区并且不要将 5
添加到小时。
- 不要使用
NSDate
或 NSCalendar
。这是Swift。使用 Date
和 Calendar
.
更新代码:
@IBAction func setTime() {
var date = Date()
//pickTimes()
var calendar = Calendar.current
var currentHour = calendar.component(.hour, from: date)
let currentMinutes = calendar.component(.minute, from: date)
let currentSeconds = calendar.component(.second, from: date)
timeText.text = ("\(currentHour):\(currentMinutes):\(currentSeconds)")
}
但是使用 DateFormatter
并将 timeStyle
设置为 .medium
或者 .long
并将 Date()
格式化为字符串会更简单。这将给出一个正确本地化的时间字符串。
我想将整数小时变量转换为 24 小时制(例如,如果是 01:05:13 下午,小时将保存为 13,分钟将保存为 5 ,秒数将保存为 13),这样我可以稍后在我的代码中使用它进行一些数学运算,以找出我正在使用的计划应用程序的一些差异。这是我的第一个应用程序,我在其他任何地方都找不到答案,所以感谢您的帮助!这段代码的另一种工作方式是从一天开始以秒为单位获取数量,如果有人知道如何做到这一点,我们将不胜感激! 这是我获取时间并将其保存为小时、秒和分钟的三个不同整数的函数:
@IBAction func setTime() {
var date = NSDate()
//pickTimes()
var calendar = NSCalendar.current
calendar.timeZone = TimeZone(identifier: "UTC")!
var currentHour = calendar.component(.hour, from: date as Date) + 5
let currentMinutes = calendar.component(.minute, from: date as Date)
let currentSeconds = calendar.component(.second, from: date as Date)
timeText.text = ("\(currentHour):\(currentMinutes):\(currentSeconds)")
}
calendar.component(.hour, from: someDate)
已经为您提供了一天中的 24 小时时间,因此无需执行其他操作即可解决您的问题。- 不确定为什么要将
5
添加到小时。您将时区设置为 UTC,因此日期将被视为 UTC 时区。然后将 5 添加到该结果。这有点奇怪。如果您只想要用户区域设置时区中的当前小时,请不要更改日历的时区并且不要将5
添加到小时。 - 不要使用
NSDate
或NSCalendar
。这是Swift。使用Date
和Calendar
.
更新代码:
@IBAction func setTime() {
var date = Date()
//pickTimes()
var calendar = Calendar.current
var currentHour = calendar.component(.hour, from: date)
let currentMinutes = calendar.component(.minute, from: date)
let currentSeconds = calendar.component(.second, from: date)
timeText.text = ("\(currentHour):\(currentMinutes):\(currentSeconds)")
}
但是使用 DateFormatter
并将 timeStyle
设置为 .medium
或者 .long
并将 Date()
格式化为字符串会更简单。这将给出一个正确本地化的时间字符串。