Shd*_*dus 4 java android date milliseconds
我正在尝试使用android中的日历,当我尝试将日期转换为毫秒时,我会在不同的运行中获得不同的结果.
当我打印出milliseconds1和milliseconds2的值时,我会得到不同的结果!
我的代码如下:
Calendar calendar1 = Calendar.getInstance();
Calendar calendar2 = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
calendar1.set(1997, 9, 3);
calendar2.set(1997, 9, 01);
long milliseconds1 = calendar1.getTimeInMillis();
long milliseconds2 = calendar2.getTimeInMillis();
Run Code Online (Sandbox Code Playgroud)
这是Java(或Android的实现)中的错误还是类似的错误?
您的问题的答案是:不,这不是Java或Android中的错误.记录良好的行为.一个Calendar实例有超过年,月,日多个字段.您生成新的日历实例并仅更改这些字段,将所有其他字段保留为创建方式.如果连续两次运行程序,则秒和毫秒的平均时间也会发生变化.
来自JavaDoc:
设置日历字段YEAR,MONTH和DAY_OF_MONTH的值. 保留其他日历字段的先前值.如果不需要,请先调用clear().
为了每次都打印相同的值,您需要这样做:
Calendar calendar1 = Calendar.getInstance();
Calendar calendar2 = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
calendar1.clear();
calendar1.set(1997, 9, 3);
calendar2.clear();
calendar2.set(1997, 9, 1);
long milliseconds1 = calendar1.getTimeInMillis();
long milliseconds2 = calendar2.getTimeInMillis();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1069 次 |
| 最近记录: |