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);
    

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

    评论

报告相同问题?

悬赏问题

  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用