我想将日期(nsdate)转换为刻度值。自1月1日00:00:00 GMT以来,Tick值为(1 Tick = 0.1微秒或0.0001毫秒)。 NSDate的功能类似于timeIntervalSince1970。那么,我该如何转换它?NSDate to Tick转换
回答
我想和大家分享我的经验:
我试图从01/01/0001找到秒钟,然后乘以10,000,000。但是,它给了我错误的结果。因此,我发现01/01/1970是01/01/0001中的621355968000000000个刻度,并使用以下公式与NSDate的timeIntervalSince1970函数一起使用。
蜱=(毫秒* 10000)+ 621355968000000000
毫秒=(蜱 - 621355968000000000)/ 10000
下面是结果:
+(NSString *) dateToTicks:(NSDate *) date
{
NSString *conversionDateStr = [self dateToYYYYMMDDString:date];
NSDate *conversionDate = [self stringYYYYMMDDToDate:conversionDateStr];
NSLog(@"%@",[date description]);
NSLog(@"%@",[conversionDate description]);
double tickFactor = 10000000;
double timeSince1970 = [conversionDate timeIntervalSince1970];
double doubleValue = (timeSince1970 * tickFactor) + 621355968000000000;
NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[numberFormatter setNumberStyle:NSNumberFormatterNoStyle];
NSNumber *nsNumber = [NSNumber numberWithDouble:doubleValue];
return [numberFormatter stringFromNumber:nsNumber];
}
同样地,为了从蜱转换到日期:
//MilliSeconds = (Ticks - 621355968000000000)/10000
+(NSDate *) ticksToDate:(NSString *) ticks
{
double tickFactor = 10000000;
double ticksDoubleValue = [ticks doubleValue];
double seconds = ((ticksDoubleValue - 621355968000000000)/ tickFactor);
NSDate *returnDate = [NSDate dateWithTimeIntervalSince1970:seconds];
NSLog(@"%@",[returnDate description]);
return returnDate;
}
你是如何考虑闰年,闰秒?夏时制在一个时区? – Abizern
'double doubleValue =(timeSince1970 * tickFactor)+ 621355968000000000' is bad。与双打一起工作会让你失去很多精确度。更好的是:'long long llValue =(long long)floor(timeSince1970 * tickFactor)+ 621355968000000000LL; NSNumber * nsNumber = [NSNumber numberWithLongLong:llValue]'。 转换回来也是一样。 – Hrissan
- 1. NSDate转换
- 2. 转换NSDate
- 3. NSDate在ios转换
- 4. 转换NSDate到NSString
- 5. 转换:NSString到NSDate
- 6. 转换AnyObject?到NSDate
- 7. 转换NSString到NSDate
- 8. nsdate转换问题
- 9. NSString到NSDate转换
- 10. 转换NSString-> NSDate?
- 11. 转换NSDict到NSDate
- 12. iPhone - NSDate之间的转换 - NSString - NSDate
- 13. 将NSDate的描述转换为NSDate?
- 14. 转换的NSString的NSDate
- 15. 转换的NSString的NSDate
- 16. 转换的NSString的NSDate
- 17. 如何将.NET tick转换为python datetime?
- 18. SQL to Linq to Entities转换
- 19. NSString到NSDate转换错误
- 20. 使用NSDateFormatter转换NSDate
- 21. NSDate转换NSDateComponents问题
- 22. 转换NSDate到日期
- 23. 将NSString转换为NSDate
- 24. 从NSString问题转换NSDate
- 25. NSDate没有正确转换
- 26. SWIFT将NSTimeInteval转换为NSDate
- 27. iphone的NSDate转换问题
- 28. 将NSDateComponents转换为NSDate
- 29. 转换毫秒的NSDate
- 30. 转换NSDate到NString问题
对于那些正在寻找Swift方法来做到这一点,请看这里:htt p://stackoverflow.com/a/41625877/253938 – RenniePet