Momo1199 2013-07-01 09:08 采纳率: 0%
浏览 875

GregorianCalendar出了什么错?

代码:

Log.e("year = ",eventiCompleti.get(i).year);
Log.e("month = ",eventiCompleti.get(i).month);
Log.e("day = ",eventiCompleti.get(i).day);
Log.e("hour = ",eventiCompleti.get(i).hour);

TimeZone MyTimezone = TimeZone.getDefault();
Calendar calendar = new GregorianCalendar(MyTimezone);                              
calendar.set(Integer.parseInt(eventiCompleti.get(i).year),Integer.parseInt( eventiCompleti.get(i).month),Integer.parseInt( eventiCompleti.get(i).day),0,0,0);
String month_name=calendar.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.getDefault());//Locale.US);
String day_name=calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.getDefault());

Log.e("day of the week = ",day_name);

输出:

06-30 21:33:55.828: E/year =(11254): 2013
06-30 21:33:55.828: E/month =(11254): 08
06-30 21:33:55.828: E/day =(11254): 07
06-30 21:33:55.828: E/hour =(11254): 18:00
06-30 21:33:55.828: E/day of the week =(11254): Saturday

但是2013年8月7号并不是星期六。

不知道哪出错了?

谢谢。

  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-01-01 12:47
    关注

    这里的错误可能是月份的问题,Java 中的月份是从 0 开始的,因此对于 8 月,实际上是 7。


    另外,我注意到你在这里使用了 Calendar 和 GregorianCalendar,但是在设置日期时使用了字符串(例如 eventiCompleti.get(i).year)。这可能会导致类型转换错误。


    您可以尝试使用下面的代码来纠正错误:

    TimeZone MyTimezone = TimeZone.getDefault();
    Calendar calendar = new GregorianCalendar(MyTimezone);
    
    // 修改月份为从 1 开始
    calendar.set(
      Integer.parseInt(eventiCompleti.get(i).year),
      Integer.parseInt(eventiCompleti.get(i).month) - 1,
      Integer.parseInt(eventiCompleti.get(i).day),
      0,
      0,
      0
    );
    
    String month_name = calendar.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.getDefault());
    String day_name = calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.getDefault());
    
    Log.e("day of the week = ", day_name);
    

    这应该会使输出为正确的星期几。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog