【问题标题】:Set Calendar with specific date and get wrong values for month [duplicate]使用特定日期设置日历并获取错误的月份值[重复]
【发布时间】:2018-06-07 20:31:03
【问题描述】:

我正在使用这种方法将时间设置为日历,但是当我想要获取月份时,它会给我第 1 个月。

例如当我设置“2017-12-27 10:50:00”时。当我想得到日历的月份时,它是 11 而不是 12。

   public String setDate(String gDate){

       try {

           private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

           Date date = sdf.parse(gDate);
           javaCalendar.setTime(date);

       } catch (ParseException e) {
           e.printStackTrace();
           Log.i("LOG_DATE", "Error is: " + e.toString());
       }
       return "";
   } 

【问题讨论】:

  • 从0开始,从0到11。
  • 分享您的代码以获取日历月
  • 即使在 Android 上,也可以考虑删除旧类 DateCalendarSimpleDateFormat,并使用现代 Java 日期和时间 API JSR-310 中的 LocalDateTimeDateTimeFormatter。与它一起工作要好得多。并且会给你第 12 个月作为Month.DECEMBER 或 12,你可以选择。要在 Android 上使用 JSR-310,请将 ThreeTenABP 添加到您的项目中。

标签: java android date android-calendar java.util.calendar


【解决方案1】:

这是因为月份的编号是从 0(一月)到 11(十二月)

更多信息请访问https://stackoverflow.com/a/344400/5602752

【讨论】:

    猜你喜欢
    • 2017-01-19
    • 2010-12-17
    • 1970-01-01
    • 2011-06-06
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多