在IOS

2013-12-09 18 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”];