从操场开始。我正在尝试创建一个简单的应用程序。
我创建了一个date对象,就像这样:
var date = NSDate()
我怎样才能得到当前的时间?在其他语言中,我可以这样做:
var hour = date.hour
但我找不到任何这样的属性/方法。我找到了一个方法,dateWithCalendarFormat。我应该用这个吗?如果是,怎么做?
从操场开始。我正在尝试创建一个简单的应用程序。
我创建了一个date对象,就像这样:
var date = NSDate()
我怎样才能得到当前的时间?在其他语言中,我可以这样做:
var hour = date.hour
但我找不到任何这样的属性/方法。我找到了一个方法,dateWithCalendarFormat。我应该用这个吗?如果是,怎么做?
当前回答
仅用于特定格式的日期
let dateFormatter1 = NSDateFormatter()
dateFormatter1.dateStyle = .MediumStyle
dateFormatter1.timeStyle = .NoStyle
dateFormatter1.dateFormat = "dd-MM-yyyy"
let date = dateFormatter1.stringFromDate(NSDate())
其他回答
你可以试试这个
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))")
你可以使用Swift4或swif5如下所示:
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let current_date = dateFormatter.string(from: date)
print("current_date-->",current_date)
输出:
2020-03-02
Swift让创建和使用扩展变得非常容易。我创建了一个sharedCode.swift文件,并在其中放入枚举、扩展名和其他有趣的东西。我创建了一个NSDate扩展来添加一些典型的功能,这是费力和丑陋的输入一遍又一遍:
extension NSDate
{
func hour() -> Int
{
//Get Hour
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.Hour, fromDate: self)
let hour = components.hour
//Return Hour
return hour
}
func minute() -> Int
{
//Get Minute
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.Minute, fromDate: self)
let minute = components.minute
//Return Minute
return minute
}
func toShortTimeString() -> String
{
//Get Short Time String
let formatter = NSDateFormatter()
formatter.timeStyle = .ShortStyle
let timeString = formatter.stringFromDate(self)
//Return Short Time String
return timeString
}
}
使用这个扩展,你现在可以做一些事情,如:
//Get Current Date
let currentDate = NSDate()
//Test Extensions in Log
NSLog("(Current Hour = \(currentDate.hour())) (Current Minute = \(currentDate.minute())) (Current Short Time String = \(currentDate.toShortTimeString()))")
在上午11:51会写出来:
(当前小时= 11)(当前分钟= 51)(当前短时间字符串= 11:51 AM)
你可以用swift 4或5像bellow
let date = Date()
let df = DateFormatter()
df.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dateString = df.string(from: date)
输出将像波纹管
2019-12-20 09:40:08
你也可以使用NSDateFormatter的方便方法,例如:
func printTimestamp() {
let timestamp = NSDateFormatter.localizedStringFromDate(NSDate(), dateStyle: .MediumStyle, timeStyle: .ShortStyle)
print(timestamp)
}
printTimestamp() // Prints "Sep 9, 2014, 4:30 AM"