【问题标题】:Parsing custom string gives wrong date解析自定义字符串给出错误的日期
【发布时间】:2012-05-17 19:47:23
【问题描述】:

我有一个日期格式为HH:mm 的字符串,例如它可以是12:0022:00,我通过将其设置为日期格式将其输入到我的NSDateFormatter 中。我只需要构建一个自定义日期。问题是当我完成此操作时,如果日期是 5 月 17 日,我的解析字符串为 2012-05-17 12:00:00 +0000

NSDate *today = [NSDate date];
NSDateFormatter *output = [[NSDateFormatter alloc] init];
[output setDateFormat:[NSString stringWithFormat:@"yyyy-MM-d %@:00 +0000",@"12:00"]];
NSString *finalTodayString = [output stringFromDate:today];
parsedDateString = [NSString stringWithString:finalTodayString];

问题是当我再次解析它以仅包含 HH:mm 时,我得到了完全不同的东西。例如,如果我有这个代码。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-d HH:mm ZZZ"];
NSDate *date = [dateFormatter dateFromString:fullDateString];

NSDateFormatter *dateFormmater2 = [[NSDateFormatter alloc] init];
[dateFormmater2 setDateFormat:@"HH:mm"];
NSString *string =[dateFormmater2 stringFromDate:date];

那么string 应该12:00,但它变成了14:00。请帮忙。

【问题讨论】:

    标签: iphone ios nsstring nsdateformatter


    【解决方案1】:

    从第一个代码中删除格林威治子午线时间“+0000”

    【讨论】:

    • 我找到了解决方案,我只需要在我的第一个代码中添加ZZZ 而不是+0000。感谢您的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多