Objective-C Czy istnieje prosty sposób init jest NSDate
z aktualną datą UTC/czas?ustawienie NSDate do aktualnej UTC
Odpowiedz
[NSDate date];
Możesz stworzyć kategorię, która robi coś takiego:
-(NSString *)getUTCFormateDate:(NSDate *)localDate
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
[dateFormatter setTimeZone:timeZone];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *dateString = [dateFormatter stringFromDate:localDate];
[dateFormatter release];
return dateString;
}
NSTimeZone * timeZone = [NSTimeZone timeZoneWithName: @ "UTC"]; [dateFormatter setTimeZone: timeZone]; , który przybity to dzięki – Brodie
nie zapomnij wydać formatyzatora daty ... –
, jeśli przejdzie do produkcji, może naprawdę chcesz utworzyć statyczny DateFormatter, który jest leniwy inicjowany. Utworzenie obiektu dateFormatter jest w rzeczywistości dość kosztowne. – jessecurry
NSDate jest odniesienie do przedziału od absolutnego dniu referencyjnym, 01 stycznia 2001 00:00 GMT . Tak więc metoda klasy [Data NSDate] zwróci reprezentację tego odstępu. Aby przedstawić te dane w formacie tekstowym w UTC, wystarczy użyć NSDateFormatter z odpowiednim NSTimeZone (UTC) do renderowania w razie potrzeby.
Wierzę, że [NSDate teraz] powinno być [data NSDate] w tej odpowiedzi. – foldinglettuce
Masz poprawną @foldinglettuce - naprawiono. – rcw3
NSDate przedmioty otaczają jeden punkt w czasie, niezależnie od jakiegokolwiek układu calendrical lub strefy czasowej. Obiekty daty są niezmienne, co stanowi niezmienny przedział czasu w stosunku do bezwzględnej daty odniesienia (00:00:00 UTC z 1 stycznia 2001 r.).
wersja Swift:
extension NSDate {
func getUTCFormateDate() -> String {
let dateFormatter = NSDateFormatter()
let timeZone = NSTimeZone(name: "UTC")
dateFormatter.timeZone = timeZone
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
return dateFormatter.stringFromDate(self)
}
}
Czy '[NSDate date]' działa? Nie jestem pewien, czy to UTC. – zneak
Chcesz NSDate ustawiony na UTC. (Nie wiem, dlaczego wszyscy podają wartości "lokalnej daty" lub "NSString"). – Patricia
Nie ma czegoś takiego, jak "NSDate" ustawione na UTC, nie ma z nim strefy czasowej. –