如何使用Swift获取当天的时间?

Sam*_*mez 48 nsdate ios swift

我怎么能在斯威夫特那里得到一天的时间.我曾尝试NSCalendarNSDateComponents,但我怕我刚开始用斯威夫特.

ave*_*Joe 118

Swift 4和Swift 3

let hour = Calendar.current.component(.hour, from: Date())
Run Code Online (Sandbox Code Playgroud)

 

或者,如果您对12 hour AM/PM日期格式感兴趣,请使用NSDateFormatter

let formatter = DateFormatter()
formatter.dateFormat = "hh a" // "a" prints "pm" or "am"
let hourString = formatter.string(from: Date()) // "12 AM"
Run Code Online (Sandbox Code Playgroud)

如果您需要分钟,秒和其他,请执行以下操作

let date = Date() // save date, so all components use the same date
let calendar = Calendar.current // or e.g. Calendar(identifier: .persian)

let hour = calendar.component(.hour, from: date)
let minute = calendar.component(.minute, from: date)
let second = calendar.component(.second, from: date)
Run Code Online (Sandbox Code Playgroud)

查看Apple文档中的可用组件:

.era, .year, .month, .day, .hour, .minute, .second,
.weekday, .weekdayOrdinal, .quarter, weekOfMonth, .weekOfYear,
.yearForWeekOfYear, .nanosecond, .calendar, .timezone
Run Code Online (Sandbox Code Playgroud)

Swift 2.0

let hour = NSCalendar.currentCalendar().component(.Hour, fromDate: NSDate())
Run Code Online (Sandbox Code Playgroud)

Swift 1.0

let hour = NSCalendar.currentCalendar().component(.CalendarUnitHour, fromDate: NSDate())
Run Code Online (Sandbox Code Playgroud)

  • 使用 Swift 2: `let hour = NSCalendar.currentCalendar().component(.Hour, fromDate: NSDate())` (2认同)
  • 很高兴看到Swift如何随着时间的推移而改善.Swift 3.0版本比Swift 1.0更具可读性 (2认同)

Kum*_* KL 26

斯威夫特3:

let date = Date()// Aug 25, 2017, 11:55 AM
let calendar = Calendar.current

let hour = calendar.component(.hour, from: date) //11
let minute = calendar.component(.minute, from: date) //55
let sec = calendar.component(.second, from: date) //33
let weekDay = calendar.component(.weekday, from: date) //6 (Friday) 
Run Code Online (Sandbox Code Playgroud)

从以下API获取任何组件

public enum Component {
    case era
    case year
    case month
    case day
    case hour
    case minute
    case second
    case weekday
    case weekdayOrdinal
    case quarter
    case weekOfMonth
    case weekOfYear
    case yearForWeekOfYear
    case nanosecond
    case calendar
    case timeZone
}
Run Code Online (Sandbox Code Playgroud)

斯威夫特2:

let currentHour = NSCalendar.currentCalendar().component(.Hour, fromDate: NSDate())
Run Code Online (Sandbox Code Playgroud)

这可能就足够了:

let currentDate = NSDate() // You can input the custom as well 
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute, fromDate:  currentDate)
let currentHour = components.hour // You can play around with the ""components""
Run Code Online (Sandbox Code Playgroud)

  • 对不起,没有找到你.你是什​​么意思**我只想得到一天中的小时**?而且**代码是复杂的**? (11认同)

Bin*_*ian 7

如果你想要一个字符串中的当前小时,这是我能想到的简短和可读.

let formatter = NSDateFormatter()
formatter.dateFormat = "HH"

let timeString = formatter.stringFromDate(NSDate())
Run Code Online (Sandbox Code Playgroud)