【发布时间】:2023-03-25 03:06:01
【问题描述】:
如何从 NSString 转换为 NSDate ?
NSString转NSDate格式时必须是yyyy-MM-dd HH:mm:ss这种格式
【问题讨论】:
标签: iphone cocoa cocoa-touch
如何从 NSString 转换为 NSDate ?
NSString转NSDate格式时必须是yyyy-MM-dd HH:mm:ss这种格式
【问题讨论】:
标签: iphone cocoa cocoa-touch
使用 NSDateFormatter 的 dateFromString:
NSString *dateStr = @"20100212";
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyyMMdd"];
NSDate *date = [dateFormat dateFromString:dateStr];
// Convert date object to desired output format
[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
dateStr = [dateFormat stringFromDate:date];
[dateFormat release];
【讨论】:
为此做了一个 NSString 扩展。
// Simple as this.
date = dateString.dateValue;
感谢NSDataDetector,它可以识别很多格式。
// Tested in GMT+1 (Hungary).
@"2014-01-16" dateValue is <2014-01-16 11:00:00 +0000>
@"2014.01.16" dateValue is <2014-01-16 11:00:00 +0000>
@"2014/01/16" dateValue is <2014-01-16 11:00:00 +0000>
@"2014 Jan 16" dateValue is <2014-01-16 11:00:00 +0000>
@"2014 Jan 16th" dateValue is <2014-01-16 11:00:00 +0000>
@"20140116" dateValue is <2014-01-16 11:00:00 +0000>
@"01-16-2014" dateValue is <2014-01-16 11:00:00 +0000>
@"01.16.2014" dateValue is <2014-01-16 11:00:00 +0000>
@"01/16/2014" dateValue is <2014-01-16 11:00:00 +0000>
@"16 January 2014" dateValue is <2014-01-16 11:00:00 +0000>
@"01-16-2014 17:05:05" dateValue is <2014-01-16 16:05:05 +0000>
@"01-16-2014 T 17:05:05 UTC" dateValue is <2014-01-16 17:05:05 +0000>
@"17:05, 1 January 2014 (UTC)" dateValue is <2014-01-01 16:05:00 +0000>
eppz!kit 的一部分,从 GitHub 获取类别 NSString+EPPZKit.h。
【讨论】: