我相信以这种方式存储日期是愚蠢的,你应该使用别的东西(如时间戳)。话虽如此,我的回答就来了。
我们可能会将字符串转换为NSDate
对象,然后返回到字符串并获取整数值。不要忘记使用足够宽的整数来保存该值(例如long long
)。
NSString *dateString = @"2012-07-16 10:20:25";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [formatter dateFromString:dateString];
[formatter setDateFormat:@"yyyyMMddHHmmss"];
NSString *numericString = [formatter stringFromDate:date];
long long value = [numericString longLongValue];
但是我们也可以认为字符串与日期无关,而只是一串我们想要连接的数字的容器。在这种情况下,我们只需要删除不需要的字符。这是更快:
NSString *dateString = @"2012-07-16 10:20:25";
NSMutableString *string = [NSMutableString stringWithString:dateString];
[string deleteCharactersInRange:NSMakeRange(16, 1)]; // remove last colon
[string deleteCharactersInRange:NSMakeRange(13, 1)]; // remove first colon
[string deleteCharactersInRange:NSMakeRange(10, 1)]; // remove space
[string deleteCharactersInRange:NSMakeRange(7, 1)]; // remove last hyphen
[string deleteCharactersInRange:NSMakeRange(4, 1)]; // remove first hyphen
long long value = [string longLongValue];
我可以问你为什么在格式想要一个int?你会不会更好地存储时间戳? – 2012-07-24 10:25:48
什么是StringDateTime的值?你为什么不使用'NSDate'对象?或者它的时间戳值? – Templar 2012-07-24 10:26:39
,因为我想在核心图表中使用它。 StringDateTime's include =“2012-07-16 10:20:25”我想要它int = 20120716102025 – user1526898 2012-07-24 10:35:46