Iphone NSDateFormatter - файлы изображений не могут быть загружены - PullRequest
0 голосов
/ 24 февраля 2012

В моей базе данных sqlite у меня есть поле NSDate, и я создаю файл изображения с уникальным именем, используя этот код, и на основе этой даты я загружаю изображение.

NSDateFormatter *digitsOnlyDateFormatter = [[NSDateFormatter alloc] init]; [digitsOnlyDateFormatter setDateFormat:@"yyyyMMddHHmmss"]; NSString *imageDateString = [digitsOnlyDateFormatter stringFromDate:[self imageDate]];

Если я изменю часовой пояс из настроек iphone и добавлю новую запись в db, другие изображения, сохраненные с другим часовым поясом, не смогут быть загружены.

Я думаю, что есть проблема с конвертацией. Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 24 февраля 2012

Часть формата NSDateFormatter s может быть переопределена пользовательскими настройками: в частности, выбором AM / PM по сравнению с 24-часовым временем.

Это можно решить, установив языковой стандарт форматера.(Примечание: это то, что вы должны делать только в подобных ситуациях, чтобы создавать строки, которые должны быть согласованы между локалями и не будут отображаться пользователю).

NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[digitsOnlyFormatter setLocale:enUSPOSIXLocale];

PS, если вы хотите строкучтобы быть сделанным относительно того же часового пояса, вы также должны установить часовой пояс форматера:

[digitsOnlyFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
...