NSDateFormatter返回错误的日期字符串

时间:2013-11-30 06:22:58

标签: ios objective-c nsdateformatter

我正在使用以下代码将NSDate转换为字符串:

+(NSString*) stringFromDate:(NSDate*) date
{
    NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"MM/dd/yyyy"];
    [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
    NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
    [dateFormatter setLocale:locale];


    return [dateFormatter stringFromDate:date];
}

工作正常,但是当我使用下面的代码时,它会减少1天

NSString *dateString = [HJDateFormatter stringFromDate:picker.date];

这段代码有什么问题????

2 个答案:

答案 0 :(得分:0)

尝试此代码

+(NSString*) stringFromDate:(NSDate*) date
{

   NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

   NSLocale *posix = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
   [dateFormatter setLocale:posix];
   [dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];
   [dateFormatter setDateFormat:@"MM/dd/yyyy"];
    return [dateFormatter stringFromDate:date];
}

答案 1 :(得分:0)

我能够解决这个问题由Aleksey Kozhevnikov回答:

“将您的UIDatePicker的timeZone属性设置为与NSDateFormatter中相同的区域”