如何使用 NSDateFormatter 以语言环境友好的方式打印星期几?
How can I print a day of the week in a locale-friendly way using NSDateFormatter?
我注意到 NSDateFormatter
允许一个名为 .FullStyle
的枚举,它将打印 Tuesday, April 12, 1952 AD
.
但是我如何才能以区域设置安全的方式打印 Tuesday
?
您需要使用 NSDateFormatter dateFormat = "cccc"
。如果你需要日期格式模式的参考,你可以看看这个 link:
extension NSDate {
struct Formatter {
static let dayOfWeek: NSDateFormatter = {
let formatter = NSDateFormatter()
formatter.dateFormat = "cccc" // Stand Alone local day of week
return formatter
}()
}
var dayOfWeek: String {
return Formatter.dayOfWeek.stringFromDate(self)
}
}
print(NSDate().dayOfWeek) // Wednesday
Xcode 8 测试版 3 • Swift 3
extension DateFormatter {
convenience init(dateFormat: String) {
self.init()
self.dateFormat = dateFormat
}
}
extension Date {
struct Formatter {
static let dayOfWeek = DateFormatter(dateFormat: "cccc") // Stand Alone local day of week
}
var dayOfWeek: String {
return Formatter.dayOfWeek.string(from: self)
}
}
print(Date().dayOfWeek) // Wednesday
您可以按照 Leo Dabus 的建议设置 formatter.dateFormat = "EEEE"
。
如果您有星期几,您可以将其用作格式化程序 weekdaySymbols
的索引。示例:
let formatter = NSDateFormatter()
let weekday = formatter.calendar.component(.Weekday, fromDate: NSDate())
let weekdaySymbol = formatter.weekdaySymbols[weekday]
// result: "Saturday" (for example)
我注意到 NSDateFormatter
允许一个名为 .FullStyle
的枚举,它将打印 Tuesday, April 12, 1952 AD
.
但是我如何才能以区域设置安全的方式打印 Tuesday
?
您需要使用 NSDateFormatter dateFormat = "cccc"
。如果你需要日期格式模式的参考,你可以看看这个 link:
extension NSDate {
struct Formatter {
static let dayOfWeek: NSDateFormatter = {
let formatter = NSDateFormatter()
formatter.dateFormat = "cccc" // Stand Alone local day of week
return formatter
}()
}
var dayOfWeek: String {
return Formatter.dayOfWeek.stringFromDate(self)
}
}
print(NSDate().dayOfWeek) // Wednesday
Xcode 8 测试版 3 • Swift 3
extension DateFormatter {
convenience init(dateFormat: String) {
self.init()
self.dateFormat = dateFormat
}
}
extension Date {
struct Formatter {
static let dayOfWeek = DateFormatter(dateFormat: "cccc") // Stand Alone local day of week
}
var dayOfWeek: String {
return Formatter.dayOfWeek.string(from: self)
}
}
print(Date().dayOfWeek) // Wednesday
您可以按照 Leo Dabus 的建议设置 formatter.dateFormat = "EEEE"
。
如果您有星期几,您可以将其用作格式化程序 weekdaySymbols
的索引。示例:
let formatter = NSDateFormatter()
let weekday = formatter.calendar.component(.Weekday, fromDate: NSDate())
let weekdaySymbol = formatter.weekdaySymbols[weekday]
// result: "Saturday" (for example)