我有一个双重0.27392,我知道它是上午6:34:27。这在Excel中很简单,但我无法让NSDateFormatter发挥它的魔力。如何将double转换为HH:MM:SS ObjectiveC
0
A
回答
1
哦好吧,很棒的抓住zoul。
在这种情况下,我会做:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
[dateFormatter setDateStyle:NSDateFormatterNoStyle];
double time = 0.27392;
double timeInSeconds = time*24*60*60; // 0.27392 * 24 = 6.57408 hours *60 for minutes * 60 for seconds
NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:timeInSeconds]; //Creates a date: 1 January 2001 6:34:27 AM, GMT
NSLog(@"Time: %@", [dateFormatter stringFromDate:date]);
[dateFormatter release];
2
啊,我明白了。这是自一天开始以来经过的小时数。在这种情况下:
double time = 0.27392;
double timeInHours = time*24; // 6.57408
int hours = (int) timeInHours; // 6
int minutes = (timeInHours - floor(timeInHours)) * 60; // 0.57408*60=34.4448 → 34
...等等。
相关问题
- 1. 如何将Double []转换为double []?
- 2. 如何将hh:mm:ss转换为分钟
- 3. 如何将HH:mm:ss转换为int?
- 4. 如何将HH:MM:SS类型转换为Second?
- 5. 如何将数据转换为“ddmmyyyy hh:mm:ss”?
- 6. 如何将HHMMSS转换为HH:MM:SS Unix?
- 7. 将hh:mm:ss转换为秒
- 8. 将小数转换为HH:MM:SS
- 9. 转换为HH:MM:SS
- 10. 如何将HH:MM:SS时间转换为天数:HH:MM:SS in php
- 11. 如何在Scala中将Array [(Double,Double)]转换为Array [Double]?
- 12. 如何将double转换为String?
- 13. 如何将ILArray转换为double [,]数组?
- 14. 如何将double转换为hex?
- 15. 如何将double值转换为hh:mm?
- 16. 如何将short []转换为double []?
- 17. 如何将%02d:%02d:%02d转换为double?
- 18. 如何将一个double转换为NSInteger?
- 19. 如何将double类型转换为CGAffineTransform?
- 20. 如何将char *转换为double *?
- 21. 如何将``char *``转换为``double *``
- 22. Java中如何将double转换为int?
- 23. 如何将"转换为double qoutes
- 24. 如何将InputStream.read()转换为double?
- 25. 如何将列表[Double]转换为列?
- 26. 如何将SQL_NUMERIC_STRUCT转换为double和string?
- 27. 如何将int转换为double?
- 28. 如何将`SInt16'转换为'double'?
- 29. 如何将double转换为字符串?
- 30. C#:如何将TimeSpan值转换为double?
这是一个奇怪的双倍时间。我认为存储为双打的日期只是从某个参考日期开始经过的秒数。如果是这样的话,那么你的双倍甚至不会是一秒钟,如果从早上6:34:27开始测量,它只能表示上午6:34:27 :-) – zoul 2010-09-10 07:48:54
是的,存储为double的日期是NSTimeInterval,从给定参考日期开始的秒数。标准参考日期是“2001年1月1日,GMT”的第一个实例。 “1970年1月1日,格林威治标准时间”也用于.. – LarsJK 2010-09-10 08:08:24