calendar.getInstance() 或 calendar.clone()
2022-09-01 04:59:46
我需要制作给定日期的副本100次(我不能通过引用)。我想知道以下两个中哪一个是更好的选择
newTime=Calendar.getInstance().setTime(originalDate);
或
newTime=originalDate.clone();
性能是这里的主要内容。
感谢。
我需要制作给定日期的副本100次(我不能通过引用)。我想知道以下两个中哪一个是更好的选择
newTime=Calendar.getInstance().setTime(originalDate);
或
newTime=originalDate.clone();
性能是这里的主要内容。
感谢。
我会用
newTime= (Calendar) originalDate.clone();
date.getTime()
[*]
private static final int N = 100000;
public static void main(final String[] args) throws Exception {
final Date date = new Date();
{
final long start = System.currentTimeMillis();
for (int i = 0; i < N; i ++) {
final Date date2 = (Date) date.clone();
}
final long end = System.currentTimeMillis();
System.out.println("Clone: " + (end - start) + " ms");
}
{
final long start = System.currentTimeMillis();
for (int i = 0; i < N; i ++) {
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
final Date date2 = cal.getTime();
}
final long end = System.currentTimeMillis();
System.out.println("Caldendar.setTime: " + (end - start) + " ms");
}
}
结果:
Clone: 13 ms
Caldendar.setTime: 317 ms
PS 我不确定,如果你真的需要一个,或者一个,所以随时修改测试...Calendar
Date
(回应评论:为了提高测试准确性,您还可以单独运行测试,增加N的值,...)