我相信以這種方式存儲日期是愚蠢的,你應該使用別的東西(如時間戳)。話雖如此,我的回答就來了。
我們可能會將字符串轉換爲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