Как получить 24-часовое время форматирования от iDevices? - PullRequest
0 голосов
/ 07 декабря 2010

Я работаю над приложением, для которого на iPhone требуется дата и время iPhone.теперь эта дата и время на разных устройствах всегда разные во всем мире в зависимости от региона и часового пояса.Я хотел бы иметь местное время только через 24 часа, хотя, если пользователь изменил настройку > дата и время> время 24 часа> выкл.в формате 'гггг-мм-дд чч: мм: сс' он создает проблему на стороне сервера и показывает неправильные дату и время на сервере.Есть ли какое-то очень специфическое решение для этого?

Ответы [ 3 ]

2 голосов
/ 06 декабря 2011

Если вам нужно время в 24-часовом формате, используйте заглавную H в dateFormatter:

dateFormatter.dateFormat = @"yyyy MM dd **HH**:mm:ss";
2 голосов
/ 07 декабря 2010

Я бы посоветовал вам не отправлять отформатированные даты на сервер и вместо этого отправлять метки времени UNIX. [[NSDate date] timeIntervalSince1970] дает вам независимую от часового пояса временную метку, которую вам не нужно анализировать. Если вам также нужен часовой пояс, отправьте его идентификатор в качестве дополнительного параметра.

0 голосов
/ 07 декабря 2010

Как говорит Costique, используйте метку времени UNIX, но если вам нужно иметь ее в формате String, включить часовой пояс в строку формата и обработать его на сервере, вам нужно что-то вроде:

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
NSLocale *enUSPOSIXLocale = [[[NSLocale alloc] 
          initWithLocaleIdentifier:@"en_US_POSIX"] autorelease];        
[dateFormatter setLocale:enUSPOSIXLocale];
[dateFormatter setTimeStyle:NSDateFormatterFullStyle];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ssZZ"];
NSString *transDateStr = [dateFormatter stringFromDate:transDate];
[dateFormatter release];
...