Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ClassicClass {
- func forFormatting() {
- //Date Formatter
- var todayDate = Date()
- let todayString = Formatters.DateFormatters.string(todayDate)
- todayDate = Formatters.DateFormatters.date(todayString)
- Formatters.DateFormatters.standardDateFormatters(todayDate)
- Formatters.DateFormatters.customDateFormatters(todayDate)
- //Person Name Components Formatters
- var myName = PersonNameComponents()
- myName.namePrefix = "Mr."
- myName.givenName = "John"
- myName.middleName = "Gordon"
- myName.familyName = "Smith"
- myName.nameSuffix = "Esq."
- myName.nickname = "Smithster"
- let myNameString = Formatters.PersonNameComponentsFormatters.string(myName) // Mr. John Gordon Smith Esq.
- myName = Formatters.PersonNameComponentsFormatters.name(myNameString) // doesn't include nickname and often middleName appends to familyName
- Formatters.PersonNameComponentsFormatters.standardNameFormatters(myName)
- //Number Formatter
- var myNumber = NSNumber(value: 003095)
- let myNumberString = Formatters.NumberFormatters.string(myNumber) // doesn't include all start "0" (3095)
- myNumber = Formatters.NumberFormatters.number(myNumberString)
- Formatters.NumberFormatters.standardNumberFormatters(myNumber)
- }
- }
- struct Formatters {
- struct DateFormatters{
- static let dateFormatter = DateFormatter()
- static func standardDateFormatters(_ todayDate: Date) {
- dateFormatter.dateStyle = .full
- dateFormatter.timeStyle = .full
- print(dateFormatter.string(from: todayDate)) //Thursday, August 17, 2017 at 12:04:50 PM Moscow Standard Time
- dateFormatter.dateStyle = .long
- dateFormatter.timeStyle = .long
- print(dateFormatter.string(from: todayDate)) //August 17, 2017 at 12:04:50 PM GMT+3
- dateFormatter.dateStyle = .medium
- dateFormatter.timeStyle = .medium
- print(dateFormatter.string(from: todayDate)) //Aug 17, 2017, 12:04:50 PM
- dateFormatter.dateStyle = .short
- dateFormatter.timeStyle = .short
- print(dateFormatter.string(from: todayDate)) //8/17/17, 12:04 PM
- dateFormatter.dateStyle = .none
- dateFormatter.timeStyle = .none
- print(dateFormatter.string(from: todayDate)) //Empty String
- }
- static func customDateFormatters(_ todayDate: Date) {
- dateFormatter.setLocalizedDateFormatFromTemplate("yyyyMMddHH:mm")
- print(dateFormatter.string(from: todayDate)) //08/17/2017, 12:34
- dateFormatter.setLocalizedDateFormatFromTemplate("MMMMd")
- print(dateFormatter.string(from: todayDate)) //August 17
- dateFormatter.setLocalizedDateFormatFromTemplate("EdMMM")
- print(dateFormatter.string(from: todayDate)) //Thu, Aug 17
- }
- static func string(_ date: Date) -> String {
- dateFormatter.dateStyle = .medium
- dateFormatter.timeStyle = .medium
- return dateFormatter.string(from: date)
- }
- static func date(_ string: String) -> Date {
- guard let date = dateFormatter.date(from: string) else { return Date() }
- return date
- }
- }
- struct PersonNameComponentsFormatters {
- static let personNameComponentsFormatter = PersonNameComponentsFormatter()
- static func standardNameFormatters(_ name: PersonNameComponents) {
- personNameComponentsFormatter.style = .default
- print(personNameComponentsFormatter.string(from: name)) // John Gordon Smith
- personNameComponentsFormatter.style = .abbreviated
- print(personNameComponentsFormatter.string(from: name)) // JG
- personNameComponentsFormatter.style = .long
- print(personNameComponentsFormatter.string(from: name)) // Mr. John Gordon Smith Esq.
- personNameComponentsFormatter.style = .medium
- print(personNameComponentsFormatter.string(from: name)) // John Gordon Smith
- personNameComponentsFormatter.style = .short
- print(personNameComponentsFormatter.string(from: name)) // John
- }
- static func string(_ name: PersonNameComponents) -> String {
- personNameComponentsFormatter.style = .long
- return personNameComponentsFormatter.string(from: name)
- }
- static func name(_ string: String) -> PersonNameComponents {
- guard let name = personNameComponentsFormatter.personNameComponents(from: string) else { return PersonNameComponents() }
- return name
- }
- }
- struct NumberFormatters {
- static let numberFormatter = NumberFormatter()
- static func standardNumberFormatters(_ number: NSNumber) {
- numberFormatter.numberStyle = .currency
- print(string(number)) // $3,095.00
- numberFormatter.numberStyle = .currencyPlural
- print(string(number)) // 3,095.00 US dollars
- numberFormatter.numberStyle = .currencyISOCode
- print(string(number)) // USD3,095.00
- numberFormatter.numberStyle = .currencyAccounting
- print(string(number)) // $3,095.00
- numberFormatter.numberStyle = .decimal
- print(string(number)) // 3,095
- numberFormatter.numberStyle = .ordinal
- print(string(number)) // 3,095th
- numberFormatter.numberStyle = .percent
- print(string(number)) // 309,500%
- numberFormatter.numberStyle = .scientific
- print(string(number)) // 3.095E3
- numberFormatter.numberStyle = .spellOut
- print(string(number)) // three thousand ninety-five
- numberFormatter.numberStyle = .none
- print(string(number)) // 3095
- }
- static func string(_ number: NSNumber) -> String {
- guard let string = numberFormatter.string(from: number) else { return "" }
- return string
- }
- static func number(_ string: String) -> NSNumber {
- guard let number = numberFormatter.number(from: string) else { return NSNumber() }
- return number
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement