【发布时间】:2015-01-18 18:27:21
【问题描述】:
大家好,我的程序中的每个人都会收到如下日期: 2015-01-18
这是一个日历对象,我需要从该对象中获取日、月和年。现在我在做类似的事情:
int day = date.get(Calendar.DAY_OF_MONTH);
int month = date.get(Calender.MONTH + 1);
int year = date.get(Calender.Year);
输出是:
day = 18
month = 1
year = 2015
我的问题是,在这种情况下,我想获得月份,例如 01 而不是 1,因为稍后会在我的代码中解析该值,并且需要采用该格式。在那个 1 之前附加 0 是丑陋的,所以任何人都知道代码是一种更好的方法来做到这一点?谢谢
【问题讨论】:
-
您是否尝试过使用
SimpleDateFormat?当您已经将其作为int获取时,为什么还要在代码中再次解析该值?理想情况下,您应该将值保留为与日期/时间相关的类型,而不是将其转换为字符串并将其解析回来……仅在您确实需要时才这样做。 (如果你使用 Java 7 或更早版本,我建议使用 Joda Time,如果你使用 Java 8+,我建议使用 java.time,而不是 java.util.Calendar。) -
我必须使用日历,我无法更改它。我使用java 6,我也不能改变它。在我阅读了日、月和年之后,我必须将其传递给另一个对象以执行 Web 服务,它必须是 01。
-
那么您需要传递字符串,而不是 int,如果您将其传递给 Web 服务,那并不是真正的“稍后在我的代码中”。
-
MONTH+1 == WEEK_OF_YEAR
-
你打算跟进这件事吗?