2012-07-24 43 views
0

詮釋我有字符串包括此2012-07-16 10:20:25,我想改變DateTime格式來yyyyMMddHHmmss這將是20120716102025和希望,但這個數字在int變種。iPhone字符串日期時間要變革格式

我試過了。

NSDateFormatter *ConvertFormat; 
int *DateTimeConverted; 

ConvertFormat = [[NSDateFormatter alloc] init]; 
[ConvertFormat setDateFormat:@"yyyyMMddHHmmss"]; 

DateTimeConverted = [ConvertFormat stringFromDate:StringDateTime]; 
+0

我可以問你爲什麼在格式想要一個int?你會不會更好地存儲時間戳? – 2012-07-24 10:25:48

+0

什麼是StringDateTime的值?你爲什麼不使用'NSDate'對象?或者它的時間戳值? – Templar 2012-07-24 10:26:39

+0

,因爲我想在覈心圖表中使用它。 StringDateTime's include =「2012-07-16 10:20:25」我想要它int = 20120716102025 – user1526898 2012-07-24 10:35:46

回答

0

這最有可能是更好找一些其他更準確的解決方法,比如用秒從1970年(或其他),但如果你都必須做這樣....

使用NSDateComponents你從你需要的字符串抓住每一個數字:

NSDateComponents *todayComponents = [gregorian components:(NSWeekdayCalendarUnit |NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:date]; 
NSInteger day = [todayComponents day]; 
NSInteger month = [todayComponents month]; 

上面的例子是不完整的,但應該給你的是如何做的想法。

然後,你需要創建一個供所有上述值形成的整數,像一串串:

NSString *stringDate = [NSString stringWithFormat:@"%i%i",day,month];

然後再轉換回一個int值:

int finalValue = [stringDate intValue]

我從來沒有這樣做過,但這將是我最初的做法。

+0

不要忘記'int'不夠寬,無法存儲20120716102025。 – 2012-07-24 14:38:37

0

我相信以這種方式存儲日期是愚蠢的,你應該使用別的東西(如時間戳)。話雖如此,我的回答就來了。

我們可能會將字符串轉換爲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]; 
0

你應該嘗試添加到您的代碼以下行:

long long int DateTimeConverted = [[ConvertFormat stringFromDate:/* your date object */] longlongInt]; 
相關問題