加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – NSDateFormatter从字符串返回错误的日期

发布时间:2020-12-16 03:25:00 所属栏目:百科 来源:网络整理
导读:我有一个方法, + (NSDate *) convertToDateFrom:(NSString *) dateString{ if (dateString == nil || [dateString isEqual:@""]) return nil; //return nil if dateString is empty NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateForma
我有一个方法,
+ (NSDate *) convertToDateFrom:(NSString *) dateString
{
    if (dateString == nil || [dateString isEqual:@""]) return nil; //return nil if dateString is empty
    NSDateFormatter *df = [[NSDateFormatter alloc] init];
        [df setDateFormat:@"EEEE,dd MMMM yyyy HH:mm"];

    NSDate *date = [df dateFromString:dateString];

    return date;
}

我过的时候

@"Monday,21 November 2011 17:01" //Passed string

它返回错误的日期,

2011-11-21 23:14:00 +0000 // Output

我不确定我是否正确使用这些标志或NSDateFormatter没有正确地将我的字符串转换为日期.

难道我做错了什么?

谢谢

解决方法

日期结束时的0000表示GMT.所有日期都相对于GMT存储;当您使用日期格式化程序将日期转换为字符串或反之亦然时,将包含您的时区的偏移量.您可以使用NSDateFormatter的-setTimeZone:方法来设置使用的时区.

简而言之,您在代码中没有做错任何事情.使用[df stringFromDate:date];看到日期是正确的. (您也可以使用NSDate的-descriptionWithCalendarFormat:timeZone:locale:.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读