NSDateFormatter提前一天提供

hkm*_*hkm 1 iphone objective-c ios

我使用下面的代码,但它提前一天给我.

示例:将输入字符串作为" 2013-08-31T23:59:59-0400 " 传递,输出日期将显示为" 2013-09-01 03:59:59 +0000 ".

NSDateFormatter *formatter = [self railsDateFormatter];
NSDate *date = [formatter dateFromString:dateString];

+(NSDateFormatter*)railsDateFormatter
{
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"YYYY-MM-dd'T'HH:mm:ssZ"];
    NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
    [formatter setLocale:locale];
    return formatter;
}
Run Code Online (Sandbox Code Playgroud)

谢谢 .

chi*_*hah 6

嗨,因为时区差异,请设置适当的时区

-(NSDate *)convertDateFromString:(NSString *)strDate DateFormat:(NSString *)strDateFromat
{
    strDateFromat=@"yyyy-MM-dd'T'HH:mm:ss";

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    //chirag::In date day is displayed one less so it can print exact date
    formatter.timeZone = [NSTimeZone timeZoneWithAbbreviation: @"GMT"];
    [formatter setDateFormat:strDateFromat];

    NSDate *currentYearDate = [formatter dateFromString:strDate];

    return currentYearDate;
}
Run Code Online (Sandbox Code Playgroud)