it-swarm.com.de

Schnell - Holen Sie sich Datum und Uhrzeit vor Ort

Wie kann ich lokales Datum und Uhrzeit in Swift erhalten?

let last_login = String(NSDate.date())
18
Mohammad Nurdin

Ich habe schon die Antwort gefunden.

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy HH:mm"
let dateInFormat = dateFormatter.stringFromDate(NSDate())
6
Mohammad Nurdin

update: Xcode 8.2.1 • Swift 3.0.2

Sie können auch die Date-Methode description(with locale: Locale?) verwenden, um die lokalisierte Zeitbeschreibung des Benutzers abzurufen:

Eine Zeichenfolgendarstellung des Datums mit dem angegebenen Gebietsschema oder, wenn das Gebietsschema Argument ist null, im internationalen Format JJJJ-MM-TT HH: MM: SS ± HHMM, wobei ± HHMM den Zeitzonenversatz in Stunden und .__ darstellt. Minuten von UTC entfernt (z. B. „2001-03-24 10:45:32 +0600“).

Beschreibung (mit Gebietsschema: Gebietsschema?)

Date().description(with: .current)   // "Monday, February 9, 2015 at 05:47:51 Brasilia Summer Time"

Die obige Methode ist nicht zur Anzeige von Datum und Uhrzeit für den Benutzer gedacht. Es dient nur zur Fehlersuche.

Bei der Anzeige des lokalen Datums und der Uhrzeit (aktuelle Zeitzone) für den Benutzer sollten Sie die Ländereinstellungen und die Geräteeinstellungen des Benutzers beachten. Das einzige, was Sie kontrollieren können, ist der Datums- und Zeitstil (kurz, mittel, lang oder voll). Für weitere Informationen darüber können Sie diesen Beitrag überprüfen shortDateTime .

Wenn Sie eine Zeitstempel-UTC für Codierungszwecke erstellen möchten (iso8601), können Sie diesen Beitrag überprüfen iso8601

41
Leo Dabus

verwenden Sie NSDateFormatter, indem Sie entweder das Format festlegen

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "hh:mm"
println(dateFormatter.stringFromDate(NSDate()))

oder Stile

dateFormatter.dateStyle = .NoStyle
dateFormatter.timeStyle = .MediumStyle
6
vikingosegundo
let expiryDate: Date = ...
let localizedDateString = DateFormatter.localizedString(from: expiryDate, dateStyle: .medium, timeStyle: .short)

"10. September 2017, 14:37"

3

Schnell 4

Aktuelles Datum und Uhrzeit abrufen

let currentDate = Date()
print(currentDate) //this will return current date and time 

dies wird jedoch in der Datumsart sein, um das Datum in einen String zu konvertieren

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy HH:mm" //give the formate according to your need
let dateStr =  dateFormatter.string(from: currentDate) //which will give the string of current date and time in required dateformate
2
Ganesh Manickam

Leos Antwort ist ziemlich gut. Ich wollte nur einen Weg hinzufügen, um es als berechnete Eigenschaft zu verwenden. 

 var currentTime: String {
    get {
        return Date().description(with: Locale.current)
    }
  }

Verwenden Sie es wie folgt: 

print(currentTime)
2
ScottyBlades

Sie müssen NSDateFormatter verwenden

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MMMM dd, yyyy HH:mm"
dateFormatter.locale = "en" // Change "en" to change the default locale if you want  
let stringDate = dateFormatter.stringFromDate(date)
1
Hani Ibrahim

So rufen Sie die am häufigsten verwendeten Zeichenfolgenformate ab (bei Abfragen und Datenbanken):

Swift 4

2019-01-09T01: 07: 04Z (RFC3339 in GMT/Zulu-Zeit)

let f = ISO8601DateFormatter()
f.formatOptions = [.withInternetDateTime]
let s = f.string(from: Date())

2019-01-08T17: 04: 16-08: 00 (RFC3339-Abrechnung für lokale Zeitzone)

let f = ISO8601DateFormatter()
f.formatOptions = [.withInternetDateTime]
f.timeZone = TimeZone.current
let s = f.string(from: Date())

2019-01-09 (Standarddatumstempel in GMT/Zulu-Zeit)

let f = ISO8601DateFormatter()
f.formatOptions = [.withFullDate, .withDashSeparatorInDate]
let s = f.string(from: Date())

2019-01-08 (Standard-Datumsstempel für die lokale Zeitzone)

let f = ISO8601DateFormatter()
f.formatOptions = [.withFullDate, .withDashSeparatorInDate]
f.timeZone = TimeZone.current
let s = f.string(from: Date())

Alle vier Zeichenfolgen entsprechen exakt demselben Datum und derselben Uhrzeit. Ein wesentlicher Vorteil des RFC3339-Formats (und der verkürzten Datumsstempel) besteht darin, dass sie nach Standardoperatoren mit weniger als, größer als sortiert werden können, sodass keine Konvertierung zwischen Server-Datumsobjekten und Client-Datumsobjekten erforderlich ist.

0
bsod