【问题标题】:time not properly returned时间未正确返回
【发布时间】:2012-04-13 09:41:51
【问题描述】:

我必须将字符串转换为日期。我正在使用日期格式化程序来做同样的事情。

代码:

NSString *stringDate = @"2010-06-21";

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

[dateFormatter setDateFormat:@"yyyy-MM-dd"];

NSDate *theDate = [dateFormatter dateFromString:stringDate];

这给了我上一个日期,而不是我传递的字符串日期。所以我尝试使用时区。

[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"];

这给了我正确的日期,但错误的时间。

我只想要日期。如何在结果中获得正确的日期截断时间

提前致谢

【问题讨论】:

    标签: iphone ios5 nsdate nsdateformatter


    【解决方案1】:

    试试这个 -

    dateOnlyFormatter = [[NSDateFormatter alloc] init];
    [dateOnlyFormatter setDateFormat:@"yyyy-MM-dd"];
    [dateOnlyFormatter setLocale:enUSPOSIXLocale];
    [dateOnlyFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
    

    显然,您要求的任何 NSDate 都会有一个时间元素 - 您需要像这样使用日期格式化程序 -

    NSString *myDateAsString = [dateOnlyFormatter stringFromDate:theDate];
    

    ...然后您可以将字符串反馈给 dateFormatter 以获得零时间的 NSDate -

    NSDate *myNewDate = [dateOnlyFormatter dateFromString:myDateAsString];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-03
      • 1970-01-01
      • 1970-01-01
      • 2019-01-27
      • 2021-02-25
      • 2017-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多