我可以使用NSDateFormatter将此日期字符串转换为NSDate吗?

我有这个字符串...

2010-08-24T16:00:00-05:00

我想从中提取时间部分(即16:00)并将其转换为相当于12小时的时间(即下午04:00)。 我试图使用NSDateFormatter来实现这一点,但它不工作...

NSDateFormatter* dateformatter = [[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"hh:mm a"];
NSDate *date1 = [dateformatter dateFromString:[listOfTimes objectAtIndex:0]];
[dateformatter release];

我可以使用这种日期格式的NSDateFormatter吗? 如果不是,我如何提取时间并将其转换为相当于12小时的时间?

谢谢!


问题与解析冒号有关。 我问了同样的问题,解决方案在这里:如何解析日期字符串到iOS中的NSDate对象?


我认为你应该能够做到以下几点。


    // create the date formatter object 
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
    NSDate* date = [formatter dateFromString:dateString];
    // set up the new date format
    [formatter setDateFormat:@"hh:mm:ss"];
    NSString *twelveHourTime = [formatter stringFromDate:date];
    [formatter release];

更新:修复了dateFormatter字符串格式。 我有下面这行,但Z似乎是没有必要的。 时区总是把我搞砸。 : - /

    [formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];

这个答案需要更新。 从iOS 10开始,系统提供了NSISO8601DateFormatter可用于此特定格式。

链接地址: http://www.djcxy.com/p/35173.html

上一篇: Can I use NSDateFormatter to convert this date string to an NSDate?

下一篇: Date format needed to work 'order by date' query in iOS