我想用Java修改日期。这没问题,但我对如何做到这一点感到有点困惑。
1
Calendar c = Calendar.getInstance();
c.set(2010,9,10,6,0);
2
Calendar c = Calendar.getInstance();
c.set(c.YEAR, 2010);
c.set(c.MONTH, 9);
c.set(c.DATE, 10);
c.set(c.HOUR, 6);
c.set(c.MINUTE, 0);
哪一个更好?如果我使用第二种方式,我必须输入更多,我知道代码应该尽可能短。另一方面,第二种方式更清晰。
答案 0 :(得分:2)
试试这个,但ctrl + space下次可以帮到你。
Calendar cal = Calendar.getInstance();
cal.set(year, month, date, hourOfDay, minute);
由于
答案 1 :(得分:1)
修改日期的唯一方法是进行一次原子操作。一次做一个字段有时会导致令人惊讶的错误结果。当您创建新的Calendar
时,它会在今天的日期初始化。假设今天是5月31日,你将月份设置为6月,打算设置下一天。当您将月份设置为6月31日不再有效时,日期将“标准化”至7月1日。然后你设置了一天,但现在月份是错误的。
你可以构建其中一些“有趣”的案例。如果您先设置月份,有些会失败,如果您先设置第一天,有些会失败,所以没有任何订单可以保证适用于所有情况。将日期设置为单个操作。
以下是一些例子:
Today Changes Result
5/31/2013 MM->6, DD->12 7/12/2013 (not 6/12)
6/01/2013 DD->31, MM->07 7/01/2013 (not 7/31)
答案 2 :(得分:0)
短代码并不是Java(或其他语言)的好方法。您必须清楚地了解您和其他想要使用您的代码的开发人员。
所以,在我看来,你可以使用第一种方法但使用更多的java文档和注释比第二种方法更明确(注意:第二种方法是最明确的,但它也需要注释......)
答案 3 :(得分:0)