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 回答