Yaq*_*mad 24 java android date gregorian-calendar
我正在开发一个与Android相关的学习项目.我想通过使用下面的代码来获取当前年份和月份,但它不适用于我.
GregorianCalendar gc = new GregorianCalendar();
gc.YEAR // returning 1
gc.MONTH // returning 2
Calendar c = Calendar.getInstance();
c.YEAR // returning 1
c.MONTH // returning 2
Run Code Online (Sandbox Code Playgroud)
有人能帮我吗?难道我做错了什么?请原谅我,我是java开发的新手.谢谢.
Jon*_*eet 65
只是为了给出更多背景:
双方new GregorianCalendar()并Calendar.getInstance()会给予正确的当前日期和时间初始化的日历.
MONTH和YEAR是常数的内Calendar类.你应该不是 "通过"的引用,这使它看起来像他们的对象的状态的一部分使用.在Calendar类的设计中,访问不同字段的值是一个不幸的部分,您需要get使用字段编号调用,指定为其中一个常量,如其他答案所示:
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
Run Code Online (Sandbox Code Playgroud)
请注意,月份数字是从0开始的,因此在撰写本文时(4月份),月份数字将为3.
这是Java语言设计的一个不幸的部分,您可以通过该类型的表达式引用静态成员(例如常量),而不是仅通过类型名称.
我的建议:
c.YEAR会产生编译时错误 - 如果你总是使用它,你最终会得到更清晰的代码Calendar.YEAR.Bal*_*hnu 21
注意MONTHS从0开始.因此,如果您需要将其映射到实际问题,只需添加+1
int month=c.get(Calendar.MONTH)+1;
Run Code Online (Sandbox Code Playgroud)
int year=c.get(Calendar.YEAR);
int month=c.get(Calendar.MONTH);
System.out.println(year);
System.out.println(month);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52908 次 |
| 最近记录: |