从操场开始。我正在尝试创建一个简单的应用程序。
我创建了一个date对象,就像这样:
var date = NSDate()
我怎样才能得到当前的时间?在其他语言中,我可以这样做:
var hour = date.hour
但我找不到任何这样的属性/方法。我找到了一个方法,dateWithCalendarFormat。我应该用这个吗?如果是,怎么做?
从操场开始。我正在尝试创建一个简单的应用程序。
我创建了一个date对象,就像这样:
var date = NSDate()
我怎样才能得到当前的时间?在其他语言中,我可以这样做:
var hour = date.hour
但我找不到任何这样的属性/方法。我找到了一个方法,dateWithCalendarFormat。我应该用这个吗?如果是,怎么做?
当前回答
斯威夫特4:
extension Date
{
func hour() -> Int
{
//Get Hour
let calendar = Calendar.current
let components = calendar.component(.hour, from: self)
let hour = components
//Return Hour
return hour
}
func minute() -> Int
{
//Get Minute
let calendar = Calendar.current
let components = calendar.component(.minute, from: self)
let minute = components
//Return Minute
return minute
}
}
其他回答
你可以试试这个
func getTime() -> (hour:Int, min:Int, sec:Int) {
let currentDateTime = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components([.Hour,.Minute,.Second], fromDate: currentDateTime)
let hour = components.hour
let min = components.minute
let sec = components.second
return (hour,min,sec)
}
现在调用该方法并接收带有小时、分钟和秒的日期
let currentTime = self.getTime()
print("Hour: \(currentTime.hour) Min: \(currentTime.min) Sec: \(currentTime.sec))")
以下代码是最新的swift版本(5):
func getTimestamp()-> String {
let timestamp = DateFormatter.localizedString(from: Date(), dateStyle: .medium, timeStyle: .short)
return "\(timestamp)"
}
您可以在Date上创建一个扩展,这样您就可以轻松地在其他文件中调用它。下面是一个使用计算属性的日期扩展示例。
它会打印出来:“今天,下午4:55”
extension Date {
var formatter: DateFormatter? {
let formatter = DateFormatter()
formatter.dateStyle = .short
formatter.timeStyle = .short
formatter.doesRelativeDateFormatting = true
return formatter
}
}
迅速回答:
let date = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components([.Hour, .Minute], fromDate: date)
let hour = components.hour
let minutes = components.minute
使用Swift 5 (Xcode 10 & Xcode 11)(来自法国UTC)
func getCurrentDateTime() {
let now = Date()
let formatter = DateFormatter()
formatter.locale = Locale(identifier: "fr_FR")
formatter.dateFormat = "EEEE dd MMMM YYYY HH:mm"
myLabel.text = formatter.string(from: now)
myLabel.font = UIFont(name: "HelveticaNeue-Light", size: 12)
myLabel.textColor = UIColor.black
}
如果您只想显示日期,请设置formatter.dateFormat
formatter.dateFormat = "EEEE dd MMMM YYYY"
若要只显示小时,请更改格式化程序。dateFormat来
formatter.dateFormat = "HH:mm"
不要忘记在viewDidLoad上添加getCurrentDateTime()。