0

これは非常に奇妙です。以下のコードは、self.danceTimeIn (そのテキスト状態) を受け取り、それを実際の時間に変換します。問題は、入力された時間よりも 1 時間少ないことです。つまり、14:03 と入力すると、データベースには 13:03 が表示されます。このコードの日付バージョンでも同じことが起こっています

+++++++++++++++++++++

時間

NSString *danceTimeIn = self.danceTimeIn.text;
NSDateFormatter *timeFormatIn = [[NSDateFormatter alloc] init];
[timeFormatIn setDateFormat:@"HH:mm"];
NSDate *timeIn = [timeFormatIn dateFromString: danceTimeIn];

日にち

NSString *danceDateValue = self.danceDate.text;
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/yy"];
NSDate *date = [dateFormat dateFromString: danceDateValue];

+++++++++++++++++++++

誰 ???

4

3 に答える 3

1

これを使ってみてください。NSDateFormater は、デバイス設定のロケールに従って日付を変更します。ロケールを適切に設定すると、適切な日付が取得されます。これが機能するかどうか試してください:)

NSString *danceTimeIn = self.danceTimeIn.text;
NSDateFormatter *timeFormatIn = [[NSDateFormatter alloc] init];
[timeFormatIn setDateFormat:@"HH:mm"];
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[timeFormatIn setLocale:usLocale];
NSDate *timeIn = [timeFormatIn dateFromString: danceTimeIn];
于 2013-10-22T11:04:08.430 に答える
1

タイム ゾーンがこの問題を引き起こしている可能性があります。

[dateFormat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];

これが役立つかもしれません。

于 2013-10-22T11:05:12.900 に答える
1

タイムゾーンによって異なります:-

最初にローカルタイムゾーンを確認してください

NSTimeZone *tz=[NSTimeZone timeZoneWithName:@"GMT"];
[dateformat setTimeZone:tz];

それに応じて日付を設定します。

于 2013-10-22T11:07:15.527 に答える