【问题标题】:Getting NSDate from NSString从 NSString 获取 NSDate
【发布时间】:2011-02-11 06:32:56
【问题描述】:

我正在尝试将 NSString 转换为 NSdate。字符串中有日期。我使用以下

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"MM/dd/yyyy"];
NSDate *date = [dateFormat dateFromString:setitempricedate];
NSLog(@"Date : %@",date);

输入字符串包含格式为 02/08/2011 的日期 当我记录日期时,我得到 2011-02-07 18:30:00 GMT,

我只想将日期设为 02/08/2011。我哪里错了

【问题讨论】:

标签: iphone


【解决方案1】:

在您的代码中,您要求日期格式化程序根据给定的字符串为您创建一个日期对象。然后你打印出那个日期对象。你想要的是创建那个日期对象,然后让日期格式化程序格式化你刚刚创建的那个日期对象。您应该改为调用 stringFromDate。

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"MM/dd/yyyy"];
NSDate *date = [dateFormat dateFromString:setitempricedate];
NSLog(@"Date: %@", [dateFormat stringFromDate:date]);

【讨论】:

  • this NSLog(@"Date: %@", [dateFormat stringFromDate:date]);
【解决方案2】:

您将无法更改日期表示。这些 (NSDateFormatter, NSCalendar) 类用于获取格式化字符串而不是日期。

只要你有一个 NSDate 类的实例,它的格式就会和你得到的一样。

2011-02-07 18:30:00 GMT

如果您想要更好的自定义样式,请使用NSString

【讨论】:

    【解决方案3】:

    您正在打印不遵循您指定的日期格式的实际日期对象。你可以做类似的事情

    [[NSDate dateWithString:setitempricedate] stringFromDate];
    

    【讨论】:

    • [NSDate dateWithString:setitempricedate] 在 Mac 而非 iOS 中可用
    • 糟糕 :) 出于某种原因,我在谷歌上搜索“ios iphone nsdate 参考”返回了 mac 文档:/good catch
    猜你喜欢
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    相关资源
    最近更新 更多