2017-01-24 1 views
0

Ich benutze unten Code, um den Tag von Komponenten zu bekommen. Ich habe eine als 2017-01-08 18:38:00 UTC. Ich benutze unten Code, um den Tag daraus zu bekommen.Inkrementierter Tag bei Verwendung von Komponenten Datum in Swift?

var components = calendar.dateComponents([.year, .month, .day,.weekday 
     ], from: eventModel.start_date!) 
    print("component day is \(String(describing: components.day!))") 

Aber wenn ich den Tag drucken es gibt mir Tag als 9 aber nicht als 8, so was ist das Problem mit code.Please leite mich, wie kann ich diese Sache verbessern.

+0

Sind Sie in die richtige Zeitzone für Ihren Kalender? – sdasdadas

+0

Das Problem, dem Sie gegenüberstehen, liegt an Ihrer Zeitzone, die einfach auf die Zeitzone "UTC" gesetzt wurde, um Ihr Problem zu lösen. –

+0

Welche Codeänderungen muss ich vornehmen, damit das funktioniert – iOSGuy

Antwort

0

Drucken (Kalender.Zeitzone). Ich denke, es war deine lokale Zeitzone.

--------- Update -----------

var cps = DateComponents() 
cps.year = 2017 
cps.month = 1 
cps.day = 8 
cps.hour = 18 
cps.minute = 30 

print(cps) 

var cal = Calendar(identifier: .gregorian) 
let localDate = cal.date(from: cps)! 
print(localDate) // 2017-01-08 10:30:00 +0000 

let timezone = TimeZone(abbreviation: "UTC") 
cal.timeZone = timezone! 
let utcDate = cal.date(from: cps)! 
print(utcDate) // 2017-01-08 18:30:00 +0000 
+0

Welche Codeänderungen muss ich vornehmen, damit das funktioniert? – iOSGuy

+0

@iOSGuy aktualisiert. –

Verwandte Themen