Есть ли простой способ инициировать NSDate
с текущей датой/временем UTC?Установка Objective-C NSDate на текущий UTC
ответ
[NSDate date];
Вы можете создать категорию, что делает что-то вроде этого:
-(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]; – Brodie
не забудьте выпустить форматировщик даты ... –
Если это движется в производство, вам действительно может понадобиться создать статический dateFormatter, который инициализируется ленивым. Создание dateFormatter на самом деле несколько дороже. – jessecurry
NSDate является ссылкой на интервале от абсолютной даты отсчета, 1 января 2001 00:00 GMT , Таким образом, метод класса [NSDate date] вернет представление этого интервала. Чтобы представить эти данные в текстовом формате в формате UTC, просто используйте NSDateFormatter с соответствующим NSTimeZone (UTC) для рендеринга по мере необходимости.
Я считаю, что [NSDate now] должен быть [NSDate date] в этом ответе. – foldinglettuce
Вы правы @foldinglettuce - исправлены. – rcw3
NSDate объекты инкапсулируют единую точку во времени, независимо от какой-либо конкретной календарной системы или часового пояса. Объекты Date являются неизменяемыми, представляя собой инвариантный временной интервал относительно абсолютной контрольной даты (00:00:00 UTC от 1 января 2001 года).
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)
}
}
- 1. NSDate всегда возвращает UTC
- 2. Установите текущий NSDate на 8AM
- 3. Как конвертировать UTC в NSDate?
- 4. Преобразование UTC строки в NSDate
- 5. Получить текущий UTC время в IOS
- 6. Установка NSDate в определенное время
- 7. Преобразование UTC NSDate в локальный NSDate не работает
- 8. Получить [NSDate date] с UTC время
- 9. Как получить время UTC от NSDate iOS
- 10. NSDateFormatter, NSDate, UTC и странный формат даты
- 11. Преобразование формата даты UTC в локальный nsdate
- 12. Как вернуть формат «UTC + XX: XX» или «UTC-XX: XX» из NSDate
- 13. Установка NSDate всегда использовать полночь
- 14. Swift NSDate и печать (NSDate)
- 15. Как сравнить текущий и ручной NSDate
- 16. Как получить текущий UTC сервера в JavaScript
- 17. Преобразование даты UTC в текущий часовой пояс
- 18. Python: текущий UTC плюс 30 минут
- 19. ObjectiveC на CAShapeLayer
- 20. Установка недельного дня NSDate не изменит дату?
- 21. NSDate() не возвращает UTC +000 после установки TestFlight
- 22. Преобразование даты [NSDate] в локализованную строку даты UTC
- 23. Сравнить NSDate с сервера и локальной NSDate
- 24. NSDate dateFromString, как разобрать 'around' UTC, GMT и локали пользователя?
- 25. Создание NSDate и установка AM или PM
- 26. Установка NSDate из NSString не работает
- 27. convert json utc "/ Date (1420095600000-0700) /" date to nsdate
- 28. Получение NSDate из строки времени в формате UTC
- 29. Преобразование NSString в NSDate с UTC-5 часовых поясов форматировщиком
- 30. iOS: Конвертировать UTC NSDate в local Часовой пояс
бы '[дата NSDate]' работает? Я не уверен, что это UTC. – zneak
Вы хотите установить NSDate в UTC. (Не знаете, почему все дают вам значения «local date» или «NSString».) – Patricia
В UTC нет такой вещи, как «NSDate», у нее нет связанной с ней часовой пояс. –