从操场开始。我正在尝试创建一个简单的应用程序。
我创建了一个date对象,就像这样:
var date = NSDate()
我怎样才能得到当前的时间?在其他语言中,我可以这样做:
var hour = date.hour
但我找不到任何这样的属性/方法。我找到了一个方法,dateWithCalendarFormat。我应该用这个吗?如果是,怎么做?
从操场开始。我正在尝试创建一个简单的应用程序。
我创建了一个date对象,就像这样:
var date = NSDate()
我怎样才能得到当前的时间?在其他语言中,我可以这样做:
var hour = date.hour
但我找不到任何这样的属性/方法。我找到了一个方法,dateWithCalendarFormat。我应该用这个吗?如果是,怎么做?
当前回答
斯威夫特3:
static func currentTime() -> String {
let date = Date()
let calendar = Calendar.current
let hour = calendar.component(.hour, from: date)
let minutes = calendar.component(.minute, from: date)
return "\(hour):\(minutes)"
}
PS -不确定将当前时间(和小时)作为日期时间是什么意思,但希望上面的解释足以回答这个问题。
其他回答
您可以在Date上创建一个扩展,这样您就可以轻松地在其他文件中调用它。下面是一个使用计算属性的日期扩展示例。
它会打印出来:“今天,下午4:55”
extension Date {
var formatter: DateFormatter? {
let formatter = DateFormatter()
formatter.dateStyle = .short
formatter.timeStyle = .short
formatter.doesRelativeDateFormatting = true
return formatter
}
}
我知道有很多答案,但我认为我的答案对许多人来说可能更方便
extension String {
init(epoch: Double) {
let date = Date(timeIntervalSince1970: epoch)
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy HH:mm:ssZZZ"
self = dateFormatter.string(from: date)
}
}
使用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()。
以下代码是最新的swift版本(5):
func getTimestamp()-> String {
let timestamp = DateFormatter.localizedString(from: Date(), dateStyle: .medium, timeStyle: .short)
return "\(timestamp)"
}
如果你只需要一天中的一小时
let calendar = NSCalendar.currentCalendar()
var hour = calendar.component(.Hour,fromDate: NSDate())