【发布时间】:2013-12-09 15:10:48
【问题描述】:
您好,我正在使用以下将目标 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 +...”
【问题讨论】:
-
如果初始字符串日期没有任何小时或分钟。
dateFromString怎么可能猜到? -
所以我也必须从字符串中获取时间,然后才能得到毫秒,对吗? @Larme
-
你没有向我们展示你是如何显示时间的,所以我们所说的任何东西都是一个猜想,除了观察到如果你只解析日期而不是时间,那么你就不会神奇地从某处。
-
"正在从日期选择器获取日期并进行转换。"如果您从日期选择器获取源日期,为什么不将其保留为 NSDate,而不是转换为字符串并返回?
-
要获得所需格式的时区,只需在用于将 NSDate 转换为字符串日期的日期格式化程序的日期格式字符串中使用“Z”。
标签: ios objective-c nstimeinterval nstimezone