在IOS

2013-12-09 50 views
0

喜轉換日期到毫秒的我用以下到日期轉換爲字符串目標C.在IOS

-(void)convertDateToJsonString:(NSString *)strDate 
{ 


    NSDateFormatter * formatter = [[NSDateFormatter alloc] init]; 
    [formatter setTimeZone:[NSTimeZone systemTimeZone]]; 
    [formatter setLocale:[NSLocale systemLocale]]; 
    [formatter setDateFormat:@"yyyy/MM/dd"]; 


    NSDate * date =[formatter dateFromString:strDate]; 

    long long milliseconds = (long long)([date timeIntervalSince1970] * 1000.0); 

    NSLog(@"After conversion %lli",milliseconds); 



} 

它給人的日期,但總是讓時間00:00:00東西不是當前的時間。如何以毫秒爲單位獲取當前時間的選定日期。

但其當前日期的工作像下面

long long millisecs = (long long)([[NSDate date] timeIntervalSince1970] * 1000.0); 

    NSLog(@"After conversion %lli",millisecs); 

是從日期選取器日期獲取和轉化。

也爲獲得確切的時區像+530在ios中是否有任何方法? 我知道[NSTimezone SystemZone的]但像它給整個價值「亞洲/加爾各答+ ...」

+1

如果初始字符串日期沒有任何小時或分鐘。怎麼能'dateFromString'猜測? – Larme

+0

所以我必須從字符串得到時間,然後可以得到毫秒右? @Larme – krishh

+0

你不會告訴我們你是如何顯示時間的,所以我們所說的任何東西都只是一個猜想,而不是觀察如果你只解析日期而不是時間,那麼你不會神奇地從某個地方得到時間。 –

回答

0

的問題是,你的strDate是沒有得到通過dateFromString:解析。結果是您的date將是niltimeInternvalSince1970將在nil上執行一些默認處理。您可以通過添加確認:

NSAssert (nil != date); 

在您初始化date後。斷言將失敗。

解決方法是,您需要更好的formatter - 與strDate中傳遞的格式一致。

但是,也許你有一個更基本的問題。 UIDatePickerdate屬性直接返回一個NSDate對象。你從哪裏得到strDate

+0

嗨@GoZoner得到的日期是正確的只有問題是時間總是00:00:00 + 5:30 am getting.Thanks for your reply friend – krishh

+0

好的。爲什麼你使用'strDate'作爲'NSString'而不是直接從'NSDatePicker'使用'date'屬性獲得'NSDate'? – GoZoner

0

你還沒有添加小時,分鐘和秒NSDateFormatter這樣

[格式化setDateFormat:@ 「YYYY/MM/DD hh:mm:ss的ZZZ」];