2016-08-10 3 views
0

Я нашел приведенный ниже пример и, похоже, работает как в режиме am-pm, так и в режиме 24 часа.Swift с использованием NSLocale для форматирования даты - необходимо автоматически установить страну

Проблема заключается в том, что я хочу установить идентификатор локали автоматически в зависимости от страны пользователя. Я не нашел список со странами или способ сделать это автоматически.

Может ли кто-нибудь помочь с примером?

let mydate = "2014-10-28T18:14:32" 
let formatter = NSDateFormatter() 
formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX") 
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss" 
if let parsedDateTimeString = formatter.dateFromString(mydate) { 
    formatter.stringFromDate(parsedDateTimeString) 
    print(parsedDateTimeString) 
} else { 
    print("Could not parse date") 
} 
+0

это [ссылка] (http://stackoverflow.com/questions/7720060/nsdate-independent-of-timezone) может помочь вам. – Khundragpan

ответ

0

Это зависит от того, что вы подразумеваете под «пользовательской страной». Если вы хотите получить идентификатор локали, в настоящее время устройство настроено на попытку NSLocale.currentLocale().localeIdentifier.

+0

Например, если час 18:14:32 в моей стране он должен быть отображен как 21:14:32 – asheyla

+0

Для этого вам нужно больше узнать о NSDate и о том, как бороться с часовыми поясами. – ff10

0

попробуйте ввести код. Меня устраивает.

let dateFormatter = DateFormatter() 
dateFormatter.timeStyle = DateFormatter.Style.short 
let date = dateFormatter.date(from: time) 

Согласно Apple, Formatting Data Using the Locale Settings

Смежные вопросы