【问题标题】:NSString to NSDate for yyyy-MM-dd'T'HH:mm:ss.+05:30 formatyyyy-MM-dd'T'HH:mm:ss.+05:30 格式的 NSString 到 NSDate
【发布时间】:2014-01-08 13:11:21
【问题描述】:

我从网络服务获得的日期字符串是 1991-01-26T00:00:00+05:30 这种格式。我如何将其授予 NSDate?

我试过了:

    NSString *p=@"1991-01-26T00:00:00+05:30";

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

    [dateformat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ"];

    NSDate *datefor=[dateformat dateFromString:p];

    [dateformat setDateFormat:@"MM-dd-yyyy hh:mm a"];

    NSString *dateStr=[dateformat stringFromDate:datefor];


    NSDate *datetype=[dateformat dateFromString:dateStr];

它返回零。有什么想法吗?

【问题讨论】:

  • 你想从你的字符串中提取“1991-01-26”吗?
  • 这个问题不仅被问了很多次,今天也至少被问了一次。请学会做哪怕是最起码的研究,并为你的工作付出一些努力
  • 只需用这个 [dateformat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssSSSZZZZ"] 更改日期格式;

标签: ios iphone objective-c nsdate nsdateformatter


【解决方案1】:

问题是您使用了错误的格式。使用

[dateformat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZ"];

因为你没有毫秒所以你不应该添加SSS

【讨论】:

  • 它会为 SSSZZZ 提供价值,但只需要删除“。”在 HH:mm:ss 之后
  • @Maul,哦,谢谢你的提示。但我建议删除它以提高可读性和可理解性。
猜你喜欢
  • 2014-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-28
  • 2023-03-22
相关资源
最近更新 更多