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 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)