您正在使用以下内容将日期转换为目标C中的字符串。
-(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);
从日期选择日期开始转换。
并且在ios中获得+530这样的确切时区有什么方法吗? 我知道 [NSTimezone Systemzone] 但它的整体价值如" Asia / kolkatta + ..."
答案 0 :(得分:0)
问题是您的strDate
未被dateFromString:
解析。结果是,date
将nil
,timeInternvalSince1970
将对nil
进行一些默认处理。您可以通过添加以下内容来确认:
NSAssert (nil != date);
初始化date
后。断言将失败。
解决方案是您需要一个更好的formatter
- 一个与传入strDate
的格式一致。
但是,也许你有一个更基本的问题。 UIDatePicker
date
属性直接返回NSDate
对象。你从哪里得到strDate
?
答案 1 :(得分:0)
您没有在NSDateFormatter中添加小时,分钟和秒,就像这样
[formatter setDateFormat:@“yyyy / MM / dd HH:mm:ss ZZZ”];