我正在使用Android应用程序而且我需要知道,如果第二个日期与模块中的第一个日期一致,则给出日期和数字。 例如,如果第一个日期是13,那么如果加总/减去' K'到第一个日期的13天,你可以得到第二个日期,K是一个整数。
使用for循环很容易做到这一点,但它不会有效,所以最后我将这两个函数编码:
import Alamofire
struct AlamofireAPIManager {
static let sharedManager: SessionManager = {
let configuration = URLSessionConfiguration.default
configuration.timeoutIntervalForRequest = 360 // 120 seconds
configuration.timeoutIntervalForResource = 360
return SessionManager(configuration: configuration)
}()
}
.
.
.
override init() {
let configuration = URLSessionConfiguration.default
configuration.timeoutIntervalForRequest = 360
configuration.timeoutIntervalForResource = 360 // seconds
self.alamofireManager = AlamofireAPIManager.sharedManager(configuration)
}
这个,使用日期的毫秒表示,我应该能够知道它们是否是"全等"或不。它在Android Studio模拟器上完美运行,但是当我尝试在我的OnePlus One上运行它时,它只适用于某些日期。
我使用removeTime()来防止millisecons有不同的时间。
有人知道代码上的错误在哪里? 非常感谢。
答案 0 :(得分:1)
您从Calendar.getInstance()获得的内容将随配置的区域设置和时区而变化,这可能与您的设备和模拟器不同。在某些时区,如果日期跨度超过时区变化(例如切换到夏令时),您的代码可能会中断。
解决此问题的方法是在removeTime方法中为没有时区(如UTC)的时区创建日历,并使用日历中的日期为本地时区设置日历,并从非时区日历中获取毫秒。然后,您的日历日将适用于您当地的时区,并且无论当地时区的DST更改如何,天数之间的毫秒数都将是您所期望的。