大家好我的项目中我收到了这样的约会: 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 是不是很丑陋,所以任何 knoenter 代码都会有更好的方法来做到这一点?谢谢
最佳答案
如果您需要将数据作为“01”传递,int
是错误的数据类型。您需要将其作为 String
传递。您可以使用 SimpleDateFormat
格式化日期。这样您就可以选择从日期中选择哪些元素以及它们应该具有的格式。示例:
final Calendar calendar = Calendar.getInstance();
final Date date = calendar.getTime();
String day = new SimpleDateFormat("dd").format(date); // always 2 digits
String month = new SimpleDateFormat("MM").format(date); // always 2 digits
String year = new SimpleDateFormat("yyyy").format(date); // 4 digit year
您还可以像这样格式化完整的日期:
String full = new SimpleDateFormat("yyyy-MM-dd").format(date); // e.g. 2015-01-18
JavaDoc for SimpleDateFormat完整解释了各种格式选项。请注意 SimpleDateFormat
不是线程安全的。
关于java - 从日历中获取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28013245/