Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I get the current Date in short format in Swift

In the images below you can see the code I wrote and the values of all the variables:

class fun getCurrentShortDate() -> String {     var todaysDate = NSDate()     var dateFormatter = NSDateFormatter()     dateFormatter.dateFormat = "dd-MM-yyyy"     var DateInFormat = dateFormatter.stringFromDate(todaysDate)      return DateInFormat } 

Variable values

As you can see the current date is found no problem, but when I try to change the NSDate to a string, it just won't do it.

like image 483
Friso Buurman Avatar asked Feb 04 '15 22:02

Friso Buurman


People also ask

How do I change the current date format in Swift?

We start by creating a Date object. To convert the date to a string, we need to create a date formatter, an instance of the DateFormatter class. To convert the Date object to a string, we invoke the date formatter's string(from:) instance method.

What is the date format in Swift?

dateFormat = "yyyy-MM-dd'T'HH:mm:ss.


1 Answers

Xcode 11 or later • Swift 5.1 or later


extension TimeZone {     static let gmt = TimeZone(secondsFromGMT: 0)! } 

extension Locale {     static let ptBR = Locale(identifier: "pt_BR") } 

extension Formatter {     static let date = DateFormatter() } 

extension Date {     func localizedDescription(date dateStyle: DateFormatter.Style = .medium,                               time timeStyle: DateFormatter.Style = .medium,                               in timeZone: TimeZone = .current,                               locale: Locale = .current,                               using calendar: Calendar = .current) -> String {         Formatter.date.calendar = calendar         Formatter.date.locale = locale         Formatter.date.timeZone = timeZone         Formatter.date.dateStyle = dateStyle         Formatter.date.timeStyle = timeStyle         return Formatter.date.string(from: self)     }     var localizedDescription: String { localizedDescription() } } 

Date().localizedDescription  // "18 Dec 2021 06:43:50" Date().localizedDescription(in: .gmt)  // "18 Dec 2021 06:43:50" UTC time Date().localizedDescription(date: .short, time: .short)  // "18/12/21 03:43" Date().localizedDescription(date: .full, time: .full)  // "Saturday, 18 December 2021 03:43:50 Brasilia Standard Time" Date().localizedDescription(date: .full, time: .full, in: .gmt)  // "Saturday, 18 December 2021 06:43:50 Greenwich Mean Time" Date().localizedDescription(date: .full, time: .full, locale: .ptBR)  // "sábado, 18 de dezembro de 2021 03:43:50 Horário Padrão de Brasília" 

extension Date {      var fullDate: String { localizedDescription(date: .full, time: .none) }     var longDate: String { localizedDescription(date: .long, time: .none) }     var mediumDate: String { localizedDescription(date: .medium, time: .none) }     var shortDate: String { localizedDescription(date: .short, time: .none) }      var fullTime: String { localizedDescription(date: .none, time: .full) }     var longTime: String { localizedDescription(date: .none, time: .long) }     var mediumTime: String { localizedDescription(date: .none, time: .medium) }     var shortTime: String { localizedDescription(date: .none, time: .short) }      var fullDateTime: String { localizedDescription(date: .full, time: .full) }     var longDateTime: String { localizedDescription(date: .long, time: .long) }     var mediumDateTime: String { localizedDescription(date: .medium, time: .medium) }     var shortDateTime: String { localizedDescription(date: .short, time: .short) } } 

print(Date().fullDate)  // "Saturday, 18 December 2021\n" print(Date().shortDate)  // "18/12/21\n"  print(Date().fullTime)  // "03:43:50 Brasilia Standard Time\n" print(Date().shortTime)  // "03:43\n"  print(Date().fullDateTime)  // "Saturday, 18 December 2021 03:43:50 Brasilia Standard Time\n" print(Date().shortDateTime)  // "18/12/21 03:43\n" 
like image 186
Leo Dabus Avatar answered Sep 19 '22 06:09

Leo Dabus