swift - 如何从日期中获取时间,包括分钟中的“0”?
问题描述
我正在使用这种方法在我的应用程序中获取时间:
let date = Date()
let calendar = Calendar.current
let hour = calendar.component(.hour, from: date)
let minutes = calendar.component(.minute, from: date)
let day = calendar.component(.day, from: date)
let month = calendar.component(.month, from: date)
let year = calendar.component(.year, from: date)
timeStamp = ("\"\(hour):\(minutes)\"")
dateFull = ("\"\(day)/\(month)/\(year)\"")
print(dateFull)
print(timeStamp)
当我打印出 timeStamp 时,它会在“分钟”低于 10 小时后给我一些奇怪的值,例如,而不是“9:03”,它将打印“9:3”等。它不包括数字前的 0 . 使用我目前的方法可以解决这个问题吗?
谢谢!
解决方案
func convertDateToHourMin(date : Date) -> String{
let calender = Calendar.current
let components = calender.dateComponents([.hour,.minute,], from: date)
var hour = String(components.hour!)
var minute = String(components.minute!)
if hour.count == 1{
hour = "0\(hour)"
}
if minute.count == 1{
minute = "0\(minute)"
}
return "\(hour)\(minute)"
}
或者你也可以这样写。
func convertDateToHourMin(date : Date) -> String{
let calender = Calendar.current
let components = calender.dateComponents([.hour,.minute,], from: date)
let dateInString = String(format: "%02d:%02d", Int(components.hour!) , Int(components.minute!))
return dateInString
}
推荐阅读
- swift - 将二进制 C 结构从 File 加载到 Swift 结构中
- java - Java URLEncoder 保留原始消息的大小写,但使 UTF-8 代码小写
- python-3.x - 如何有选择地从python字典中获取值
- javascript - 如何在提交时获取表单数据?
- shell - Homestead 将参数传递给 after.sh 以进行 xdebug 自动配置
- sql-server - 将数据类型 nvarchar 转换为数值时出错。在过程中调用函数时
- php - 如何将 SQL 数据获取到 PHP 数组
- .net - 如何将多个 .NET Core 程序集合并为一个(.dll / .exe)?
- go - 在启用 pkg/profile 的情况下运行 go 时如何获取样本?
- sql - SQL - 试图添加替换的 XML 解析中的非法字符