【问题标题】:Converting "Mar 13, 2013 05:30pm" to an NSDate [closed]将“2013 年 3 月 13 日下午 5:30”转换为 NSDate [关闭]
【发布时间】:2013-02-25 12:06:11
【问题描述】:

我有以下字符串 "Mar 13, 2013 05:30pm" 。我想把它转换成NSDate 对象。

我尝试了以下方法,但它不起作用。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MMM:dd, YYYY hh:mm:aa"];
date=[dateFormatter dateFromString:dateString];

【问题讨论】:

标签: objective-c cocoa-touch nsdate nsdateformatter date-parsing


【解决方案1】:
NSDateFormatter *dFormate = [[NSDateFormatter alloc] init];
[dFormate setDateFormat:@"MM dd, yyyy hh:mma"];
[dFormate setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

NSString *dateStr = @"Mar 13, 2013 05:30pm";
NSDate *date = [dFormate dateFromString:dateStr];

NSLog(@"Date : %@", date);

【讨论】:

  • 这段代码错误,YYYY应该是小写的yyyy。这导致错误的答案.. :)
  • 您好,如果您将“hh:mm:a”更改为“hh:mma”,您的代码将正常工作。
  • @P.J= 你为什么嫉妒???请解释为什么它是错误的??
  • @iPatel 用 YYYY 代替 yyyy 试试我的代码,它会给你错误的答案。
  • @P.J- 好吧,我同意你的看法。但要积极,你的回答被 OP 接受。这就是加分兄弟:)
【解决方案2】:

试试这个:-

NSString *stringDate = @"Mar 13, 2013 05:30pm";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MMM dd, yyyy hh:mmaa"];
NSDate *date=[dateFormatter dateFromString:stringDate];
NSLog(@"Date : %@",date);

希望对你有帮助..

【讨论】:

  • "String" 作为变量名? ;-)
  • 是的.. 它的 NSString *String
  • 前导大写字符有什么意义? (你现在已经删除了,这使得这个 cmets 线程混乱,呵呵)
  • @JamesBoutcher 这里不是真正的编码竞赛,这里不关心 Camel 套管;)
  • @sunilz 它写在你错过了 +0530 UTC...你应该知道这一点..
猜你喜欢
  • 1970-01-01
  • 2020-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-18
  • 1970-01-01
  • 1970-01-01
  • 2013-03-04
相关资源
最近更新 更多