gpt4 book ai didi

objective-c - 为什么使用 NSDate 将 double 转换为字符串会额外增加 30 分钟

转载 作者:行者123 更新时间:2023-11-28 18:41:05 26 4
gpt4 key购买 nike

double duration = 20; // duration is in seconds 

NSDate* durationDate = [[NSDate alloc]initWithTimeIntervalSinceReferenceDate:duration];

NSDateFormatter *formatter = nil;


formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat:@"mm:ss"];

NSString *durationString=[formatter stringFromDate:durationDate];//here durationString should have 20

但我现在是 30:20?从哪里添加这 30 分钟。我试过给出更大的数字然后也得到相同的结果

请让我知道对此的想法以及如何解决这个问题

最佳答案

您可能使用的是印度标准时间?

引用日期定义为格林威治标准时间午夜。 IST 为 GMT+5:30。

因此,当您将引用日期增加 20 秒时,您将得到格林威治标准时间午夜过后 20 秒。当您随后创建一个日期格式化程序并且不为其设置任何其他内容时,它将在您设备的自然时区运行。这意味着当您在时间结束时询问分钟和秒数时,您会得到 30 分 20 秒。

NSDate 是绝对时间,是任何时区或日历的抽象。如果五个不同时区的五个设备都同时调用 [NSDate date] 来获取当前时间,它们都会得到具有相同值的对象。

NSDateFormatter 结合了一个 NSDate 与一个 NSCalendar 和一个 NSTimeZone 来确定分钟、秒、小时、月、年等

关于objective-c - 为什么使用 NSDate 将 double 转换为字符串会额外增加 30 分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10742078/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com