java - 从日历中获取日期

标签 java calendar

大家好我的项目中我收到了这样的约会: 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/

相关文章:

java - (Oracle) Java JVM 如何知道闰秒正在发生?

java - Java 中的稀疏矩阵

iOS:如何保存哪个是首选 EKCalendar?

java - 如何在日期选择器编辑文本时永久隐藏键盘

java - 如何删除从hashmap生成的重复结果

java - 轮询客户端连接的正确方法是什么 - Apache Thrift Server

java - 如何使用 LayeredHighlighter - 一个高亮显示在另一个之上

javascript - Jquery 日历和快速搜索的冲突问题

calendar - 有人可以用框架或其他东西帮助我在 flutter 中实现这种类型的日历小部件吗

android - 将 android 联系人的生日复制到日历