从操场开始。我正在尝试创建一个简单的应用程序。
我创建了一个date对象,就像这样:
var date = NSDate()
我怎样才能得到当前的时间?在其他语言中,我可以这样做:
var hour = date.hour
但我找不到任何这样的属性/方法。我找到了一个方法,dateWithCalendarFormat。我应该用这个吗?如果是,怎么做?
从操场开始。我正在尝试创建一个简单的应用程序。
我创建了一个date对象,就像这样:
var date = NSDate()
我怎样才能得到当前的时间?在其他语言中,我可以这样做:
var hour = date.hour
但我找不到任何这样的属性/方法。我找到了一个方法,dateWithCalendarFormat。我应该用这个吗?如果是,怎么做?
当前回答
如果你需要以一种特定的方式格式化答案,你可以很容易地使用这个方法,default = "dd-MM-yyyy"。
extension Date {
func today(format : String = "dd-MM-yyyy") -> String{
let date = Date()
let formatter = DateFormatter()
formatter.dateFormat = format
return formatter.string(from: date)
}
}
获取今天的日期现在可以使用
Date().today() or Date().today("dd/MM/yyyy")
其他回答
这是SWIFT扩展,以获得您当前的设备位置时间(GMT)。
func getGMTTimeDate() -> Date {
var comp: DateComponents = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute], from: self)
comp.calendar = Calendar.current
comp.timeZone = TimeZone(abbreviation: "GMT")!
return Calendar.current.date(from: comp)!
}
现在得到时间:-
Date().getGMTTimeDate()
如果你只需要一天中的一小时
let calendar = NSCalendar.currentCalendar()
var hour = calendar.component(.Hour,fromDate: NSDate())
斯威夫特4
let dateFormatter : DateFormatter = DateFormatter()
// dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.dateFormat = "yyyy-MMM-dd HH:mm:ss"
let date = Date()
let dateString = dateFormatter.string(from: date)
let interval = date.timeIntervalSince1970
输出
2018 - 5月- 01 10:41:31
如果你需要以一种特定的方式格式化答案,你可以很容易地使用这个方法,default = "dd-MM-yyyy"。
extension Date {
func today(format : String = "dd-MM-yyyy") -> String{
let date = Date()
let formatter = DateFormatter()
formatter.dateFormat = format
return formatter.string(from: date)
}
}
获取今天的日期现在可以使用
Date().today() or Date().today("dd/MM/yyyy")
Swift 3更新:
let date = Date()
let calendar = Calendar.current
let hour = calendar.component(.hour, from: date)
let minutes = calendar.component(.minute, from: date)
我是这样做的:
let date = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute, fromDate: date)
let hour = components.hour
let minutes = components.minute
在objective-c中看到同样的问题,我如何从NSDate中获得小时和分钟?
和Nate的答案相比,你得到的是数字,而不是字符串……