Advertisement
krotoff

iOS Main Formatters

Aug 17th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 6.61 KB | None | 0 0
  1. class ClassicClass {
  2.     func forFormatting() {
  3.         //Date Formatter
  4.         var todayDate = Date()
  5.         let todayString = Formatters.DateFormatters.string(todayDate)
  6.         todayDate = Formatters.DateFormatters.date(todayString)
  7.         Formatters.DateFormatters.standardDateFormatters(todayDate)
  8.         Formatters.DateFormatters.customDateFormatters(todayDate)
  9.        
  10.         //Person Name Components Formatters
  11.         var myName = PersonNameComponents()
  12.         myName.namePrefix = "Mr."
  13.         myName.givenName = "John"
  14.         myName.middleName = "Gordon"
  15.         myName.familyName = "Smith"
  16.         myName.nameSuffix = "Esq."
  17.         myName.nickname = "Smithster"
  18.         let myNameString = Formatters.PersonNameComponentsFormatters.string(myName) // Mr. John Gordon Smith Esq.
  19.         myName = Formatters.PersonNameComponentsFormatters.name(myNameString) // doesn't include nickname and often middleName appends to familyName
  20.         Formatters.PersonNameComponentsFormatters.standardNameFormatters(myName)
  21.        
  22.         //Number Formatter
  23.         var myNumber = NSNumber(value: 003095)
  24.         let myNumberString = Formatters.NumberFormatters.string(myNumber) // doesn't include all start "0" (3095)
  25.         myNumber = Formatters.NumberFormatters.number(myNumberString)
  26.         Formatters.NumberFormatters.standardNumberFormatters(myNumber)
  27.     }
  28. }
  29.  
  30. struct Formatters {
  31.  
  32.     struct DateFormatters{
  33.         static let dateFormatter = DateFormatter()
  34.        
  35.         static func standardDateFormatters(_ todayDate: Date) {
  36.             dateFormatter.dateStyle = .full
  37.             dateFormatter.timeStyle = .full
  38.             print(dateFormatter.string(from: todayDate)) //Thursday, August 17, 2017 at 12:04:50 PM Moscow Standard Time
  39.            
  40.             dateFormatter.dateStyle = .long
  41.             dateFormatter.timeStyle = .long
  42.             print(dateFormatter.string(from: todayDate)) //August 17, 2017 at 12:04:50 PM GMT+3
  43.            
  44.             dateFormatter.dateStyle = .medium
  45.             dateFormatter.timeStyle = .medium
  46.             print(dateFormatter.string(from: todayDate)) //Aug 17, 2017, 12:04:50 PM
  47.            
  48.             dateFormatter.dateStyle = .short
  49.             dateFormatter.timeStyle = .short
  50.             print(dateFormatter.string(from: todayDate)) //8/17/17, 12:04 PM
  51.            
  52.             dateFormatter.dateStyle = .none
  53.             dateFormatter.timeStyle = .none
  54.             print(dateFormatter.string(from: todayDate)) //Empty String
  55.         }
  56.        
  57.         static  func customDateFormatters(_ todayDate: Date) {
  58.             dateFormatter.setLocalizedDateFormatFromTemplate("yyyyMMddHH:mm")
  59.             print(dateFormatter.string(from: todayDate)) //08/17/2017, 12:34
  60.            
  61.             dateFormatter.setLocalizedDateFormatFromTemplate("MMMMd")
  62.             print(dateFormatter.string(from: todayDate)) //August 17
  63.            
  64.             dateFormatter.setLocalizedDateFormatFromTemplate("EdMMM")
  65.             print(dateFormatter.string(from: todayDate)) //Thu, Aug 17
  66.         }
  67.        
  68.         static func string(_ date: Date) -> String {
  69.             dateFormatter.dateStyle = .medium
  70.             dateFormatter.timeStyle = .medium
  71.             return dateFormatter.string(from: date)
  72.         }
  73.        
  74.         static func date(_ string: String) -> Date {
  75.             guard let date = dateFormatter.date(from: string) else { return Date() }
  76.             return date
  77.         }
  78.     }
  79.    
  80.     struct PersonNameComponentsFormatters {
  81.         static let personNameComponentsFormatter = PersonNameComponentsFormatter()
  82.        
  83.         static func standardNameFormatters(_ name: PersonNameComponents) {
  84.             personNameComponentsFormatter.style = .default
  85.             print(personNameComponentsFormatter.string(from: name)) // John Gordon Smith
  86.            
  87.             personNameComponentsFormatter.style = .abbreviated
  88.             print(personNameComponentsFormatter.string(from: name)) // JG
  89.            
  90.             personNameComponentsFormatter.style = .long
  91.             print(personNameComponentsFormatter.string(from: name)) // Mr. John Gordon Smith Esq.
  92.            
  93.             personNameComponentsFormatter.style = .medium
  94.             print(personNameComponentsFormatter.string(from: name)) // John Gordon Smith
  95.            
  96.             personNameComponentsFormatter.style = .short
  97.             print(personNameComponentsFormatter.string(from: name)) // John
  98.         }
  99.        
  100.         static func string(_ name: PersonNameComponents) -> String {
  101.             personNameComponentsFormatter.style = .long
  102.             return personNameComponentsFormatter.string(from: name)
  103.         }
  104.        
  105.         static func name(_ string: String) -> PersonNameComponents {
  106.             guard let name = personNameComponentsFormatter.personNameComponents(from: string) else { return PersonNameComponents() }
  107.             return name
  108.         }
  109.     }
  110.    
  111.     struct NumberFormatters {
  112.         static let numberFormatter = NumberFormatter()
  113.        
  114.         static func standardNumberFormatters(_ number: NSNumber) {
  115.             numberFormatter.numberStyle = .currency
  116.             print(string(number)) // $3,095.00
  117.            
  118.             numberFormatter.numberStyle = .currencyPlural
  119.             print(string(number)) // 3,095.00 US dollars
  120.            
  121.             numberFormatter.numberStyle = .currencyISOCode
  122.             print(string(number)) // USD3,095.00
  123.            
  124.             numberFormatter.numberStyle = .currencyAccounting
  125.             print(string(number)) // $3,095.00
  126.            
  127.             numberFormatter.numberStyle = .decimal
  128.             print(string(number)) // 3,095
  129.            
  130.             numberFormatter.numberStyle = .ordinal
  131.             print(string(number)) // 3,095th
  132.            
  133.             numberFormatter.numberStyle = .percent
  134.             print(string(number)) // 309,500%
  135.            
  136.             numberFormatter.numberStyle = .scientific
  137.             print(string(number)) // 3.095E3
  138.            
  139.             numberFormatter.numberStyle = .spellOut
  140.             print(string(number)) // three thousand ninety-five
  141.            
  142.             numberFormatter.numberStyle = .none
  143.             print(string(number)) // 3095
  144.         }
  145.        
  146.         static func string(_ number: NSNumber) -> String {
  147.             guard let string = numberFormatter.string(from: number) else { return "" }
  148.             return string
  149.         }
  150.        
  151.         static func number(_ string: String) -> NSNumber {
  152.             guard let number = numberFormatter.number(from: string) else { return NSNumber() }
  153.             return number
  154.         }
  155.     }
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement