我试过了
Calendar calendar= Calendar.getInstance();
System.out.println("use with command get time \"calendar.getTime()\" : "+calendar.getTime());
System.out.println("use with command get month \"calendar.get(Calendar.MONTH)\": "+calendar.get(Calendar.MONTH));
但我找不到正确的月份。
this is my output
我怎样才能得到当前月份呢?谢谢你的阅读,抱歉我的英语不好。
5条答案
按热度按时间nom7f22z1#
一个月
您可以使用下面的命令获取int或string格式的月份值
8ehkhllq2#
还可以使用
SimpleDateFormat
方法获取当前日期和时间。在这里看到我的函数我得到了当前的日期和时间供大家参考
有关详细信息,请参阅official android documentation here
hrysbysz3#
以下是官方文档中的一些示例。参考链接
其中
MM
表示整数形式的月份(dec ~ 12),MMM
表示字母形式的月份(Dec)efzxgjgh4#
Answer by Sriram是正确的,并且提供了使用
java.time.LocalDate
类的现代解决方案。时区
LocalDate#now
方法隐式使用JVM的当前默认时区。时区非常重要,因为对于任何给定时刻,时间以及日期都可能因地区而异。在日本东京,时间可能是“明天”,而在美国俄亥俄州州托莱多,时间可能是“昨天”。如果省略传递
ZoneId
对象,JVM的当前默认时区将自动应用,这与显式传递默认时区具有相同的效果。我建议你采用明确的方法,把你的意图说得清清楚楚。
Month
枚举方法
LocalDate#getMonth
返回一个Month
枚举对象。如果要生成表示该值的文本,可以自动本地化。
看这个code run at Ideone.com。
德桑布雷
您可以通过调用
Locale.getDefault()
来访问JVM当前的默认语言环境。安卓系统
Android 26+支持 java.time 类的实现。
对于早期的Android,使用最新的工具通过“API desugaring”访问大部分 java.time 功能。
eivnm1vs5#
如果查看类
java.util.Calendar
的源代码,您将发现以下常量:因此,
calendar.get(Calendar.MONTH))
正确地返回11(十一)。但是,Android 8(API级别26)添加了类LocalDate,应使用该类来代替类
Calendar
。请注意,类Calendar
同时包含日期和时间,而类LocalDate
仅包含日期。类LocalDateTime
同时包含日期和时间。根据
LocalDate
类中[static]方法now
的文档:从默认时区的系统时钟获取当前日期。
如果你想要当前月份,你可以调用
getMonthValue
方法...获取从1到12的月份字段。
或者,您可以调用方法
getMonth
...使用
Month
枚举获取月份字段。所以你的代码应该是:
其产生以下输出: