【问题标题】:NSString to NSDate with setDateFormatNSString 到 NSDate 与 setDateFormat
【发布时间】:2014-02-04 12:22:16
【问题描述】:

NSDateFormatter 解析来自网络的字符串时遇到问题。

我将日期解析为字符串并将它们转换为NSDate。问题在于选择正确的格式字符串。

解析的日期具有以下“格式”:

Feb 04, 2014 8:00 AM ET

但我没有找到正确的格式将它们转换为NSDate

我尝试过:EEE dd, yyyy hh:mm a,但它不起作用。

代码很简单:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEE dd, yyyy hh:mm a"];
NSDate *articleDate = [formatter dateFromString:articleDateString];

有什么想法吗?

【问题讨论】:

    标签: parsing nsstring nsdate


    【解决方案1】:

    尝试以下代码将您的NSString 转换为NSDate

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"MMM dd, yyyy hh:mm a 'ET'"];
    [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT+0:00"]];
    NSDate *articleDate = [dateFormatter dateFromString:@"Feb 04, 2014 8:00 AM ET"];
    NSLog(@"-->%@",articleDate);
    

    【讨论】:

    • 嗯.. 我可以在其他日期格式中使用此方法吗?我尝试用于:Sun, 2 Feb 2014 23:30:00 EDT ... --> EEE, dd MMM yyyy HH:mm:ss 'EDT'..???
    • 是的.. 但你需要在你的字符串改变时改变日期格式
    【解决方案2】:

    使用此页面:http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

    将您的“EEE”更改为“MMM”并在末尾添加一个“z”以捕捉您的时区。

    “EEE”是星期几,例如“星期二”,而不是月份。

    【讨论】:

    • 谢谢你.. 但不能再工作了。我用过:“MMM dd, yyyy h:mm a z”“MMM dd, yyyy h:mm a zzz”“MMM dd, yyyy hh:mm a z”“MMM dd, yyyy hh:mm a zzz”
    猜你喜欢
    • 1970-01-01
    • 2018-03-10
    • 2012-08-03
    • 2011-02-06
    • 2014-05-19
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 1970-01-01
    相关资源
    最近更新 更多