1

uipickerから選択したタイムゾーンの日付と時刻をラベルまたはテキストフィールドに表示しようとしていますが、この問題を解決する方法がありません。誰か助けてください。よろしくお願いします。

SelectedTimeZone = [Weight objectAtIndex:[pickerView selectedRowInComponent:0]]; NSString * selectedzone = SelectedTimeZone;

NSCalendar *gregorian=[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
[gregorian setTimeZone:[NSTimeZone timeZoneWithName:selectedzone]];
NSDateComponents *timeZoneComps=[[NSDateComponents alloc] init];

NSDate *date=[gregorian dateFromComponents:timeZoneComps];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterFullStyle];
[formatter setDateFormat:@"dd-MM-yyyy HH:mm:ss "];
NSString *todaysDate= [formatter stringFromDate:[NSDate date]];
zone.text = todaysDate;  I know this is not proper way but i'm new to xcode
4

2 に答える 2

3

[NSDate date]は、現在の日付と時刻を表す日付オブジェクトを、どこにいても返します。NSDatesは、場所やタイムゾーンの影響を受けません。現在またはその他の瞬間を表すNSDateは1つだけであり、タイムゾーンごとに異なる日付オブジェクトはありません。したがって、タイムゾーン間で日付を変換しようとしないでください。

NSDate *now = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterShortStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"Australia/Sydney"]];
NSLog(@"%@",[formatter stringFromDate:now]); //--> 9/9/11 11:54 PM
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"Europe/Paris"]];
NSLog(@"%@",[formatter stringFromDate:now]);

または ここで同じ質問を参照してください

于 2012-09-05T13:47:24.057 に答える
0

uipickerから選択したタイムゾーンの日付と時刻を取得するには、次のようにフォーマッターに日付を指定します。

NSDate *now = [NSDate date];
NSCalendar *gregorian=[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
[gregorian setTimeZone:[NSTimeZone timeZoneWithName:selectedzone]];

NSDateComponents* timeZoneComps = [gregorian components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit|NSTimeZoneCalendarUnit fromDate:now];

NSDate *selectedDate=[gregorian dateFromComponents:timeZoneComps];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterFullStyle];
[formatter setDateFormat:@"dd-MM-yyyy HH:mm:ss "];
NSString *strSelectedDate= [formatter stringFromDate:selectedDate];
zone.text = strSelectedDate;
于 2012-08-27T11:54:47.147 に答える