使用不推荐使用的android Time类
编写以下方法 // To make it easy to query for the exact date, we normalize all dates that go into
// the database to the start of the the Julian day at UTC.
public static long normalizeDate(long startDate) {
// normalize the start date to the beginning of the (UTC) day
Time time = new Time();
time.set(startDate);
int julianDay = Time.getJulianDay(startDate, time.gmtoff);
return time.setJulianDay(julianDay);
}
you can find this method here at line 47
请帮助我理解......
我为 startDate 参数尝试了不同的(unix,UTC)值,例如1464174000和1464433200只是为了理解方法的输出,但方法总是返回 1458000000 ,这是相当于:
03/15/2016 @ 12:00 am(UTC)
那么如果方法总是返回相同的值,那么该方法的目的是什么?
我想理解它,以便我可以使用不被弃用的GregorianCalendar类再次编写它
答案 0 :(得分:0)
来自here
调用者必须以UTC毫秒(可以通过toMillis(boolean)或normalize(boolean))返回时间以及时区的UTC偏移量(以秒为单位)(可能是gmtoff中)。
所以startDate
应该是毫秒,而不是秒。用适当的价值打电话。例如 -
public static long normalizeDate(long startDate) {
// normalize the start date to the beginning of the (UTC) day
Time time = new Time();
time.set(1464181063013);
int julianDay = Time.getJulianDay(1464181063013, time.gmtoff);
return time.setJulianDay(julianDay);
}
我希望它会给你一个不同的结果。