2016-04-09 8 views
0

Ich bemerkte, NSDateFormatter ermöglicht eine Enum namens .FullStyle, die Tuesday, April 12, 1952 AD drucken wird.Wie kann ich einen Wochentag mit NSDateFormatter auf eine länderfreundliche Weise drucken?

Aber wie drucke ich einfach Tuesday in einem Gebietsschema-sicheren Weg?

+0

'NSDateFormatter' hat eine' dateStyle' Eigenschaft, die auf '.FullStyle' gesetzt werden kann. 'NSDateComponents' hat keine' dateStyle' Eigenschaft oder irgendetwas, das auf '.FullStyle' gesetzt werden kann. Ich habe deine Frage bearbeitet. Wenn Sie nicht "NSDateFormatter" sagen wollten, bearbeiten Sie bitte Ihre Frage, um sie genauer zu erklären. –

Antwort

3

Sie müssen NSDateFormatter dateFormat = "cccc" verwenden. Wenn Sie eine Referenz für das Datumsformat Muster benötigen, können Sie einen Blick auf diese link nehmen:

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 Beta 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 
0

Sie formatter.dateFormat = "EEEE" als Leo einstellen Dabus schlägt vor.

Wenn Sie den Wochentag haben, können Sie ihn als Index in den Formatierer weekdaySymbols verwenden. Beispiel:

let formatter = NSDateFormatter() 
let weekday = formatter.calendar.component(.Weekday, fromDate: NSDate()) 
let weekdaySymbol = formatter.weekdaySymbols[weekday] 
// result: "Saturday" (for example)