Как указать часовой пояс в UIDatePicker - PullRequest
9 голосов
/ 18 июня 2011
- (IBAction) buttonPressed {
NSDate *selected = [datePicker date];
NSString *message = [[NSString alloc] initWithFormat:@"The date and time you selected is: %@", selected];
UIAlertView *alert = [[UIAlertView alloc]
                      initWithTitle:@"Date and Time Selected" message:message delegate:nil cancelButtonTitle:@"Yes, I did!" otherButtonTitles:nil];
[alert show];
[alert release];
[message release];

Итак, мой вопрос следующий ... Как я могу указать часовой пояс, используя Datepicker в Objective C?Теперь, если я выберу некоторые значения из DatePicker и нажму на кнопку, которая отображает предупреждение - время неверное.Возможно, из-за неправильного часового пояса, но я не уверен.Ну, любые идеи были бы великолепны.На картинке ниже вы можете видеть, что я выбрал 14:14 (14:14), но изменение говорит, что это 11:14 и часовой пояс + 000

ОБНОВЛЕНИЕ 1 Я добавил несколько изменений в мой код, но все еще ничего ...

- (IBAction) buttonPressed {
NSDate *selected = [datePicker date];       
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];    
NSTimeZone *tz = [NSTimeZone systemTimeZone];
[dateFormatter setTimeZone:tz];
NSString *formattedDate = [dateFormatter stringFromDate:selected];
NSString *message = [[NSString alloc] initWithFormat:@"The date and time you selected is: %@", formattedDate];
UIAlertView *alert = [[UIAlertView alloc]
                      initWithTitle:@"Date and Time Selected" 
                      message:message delegate:nil cancelButtonTitle:@"Yes, I did!" otherButtonTitles:nil];
[alert show];
[alert release];
[message release];
[dateFormatter release];

Ответы [ 5 ]

15 голосов
/ 29 мая 2012

Используйте это в точке, где использование определило ваш DatePicker

datePicker.timeZone = [NSTimeZone localTimeZone];

4 голосов
/ 16 июня 2017

Вы можете установить дату с часовым поясом

Цель C

datePicker.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:10*60*60]; // Like GMT+10

в Swift 3:

datePicker.timeZone = TimeZone(secondsFromGMT: 5*60*60)  // Like GMT+5
2 голосов
/ 23 ноября 2016

в Swift 3:

datePicker.timeZone = NSTimeZone.local
2 голосов
/ 09 марта 2016

Вы можете установить дату со строками часового пояса, такими как Australia/West (+08:00) , WST, Asia/Kolkata (+05:30), IST

datePicker.timeZone = [NSTimeZone timeZoneWithName:@"timezone string goes here"] ;
1 голос
/ 18 июня 2011

Я думаю, что это из-за формата даты, используйте NSDateFormatter, чтобы указать соответствующий формат даты и используйте его в вашей строке, вот ссылка Ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...