V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jinyang656
V2EX  ›  问与答

为什么Java中的Calendar在Java和Android下结果不一样

  •  
  •   jinyang656 · 2013-12-01 13:56:24 +08:00 · 2498 次点击
    这是一个创建于 4028 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在java 环境下打运行
    Calendar c=Calendar.getInstance();
    c.setFirstDayOfWeek(Calendar.MONDAY);
    System.out.println(c);
    System.out.println(c.get(Calendar.WEEK_OF_YEAR));

    打印结果,周数48是对的
    java.util.GregorianCalendar[time=1385876708339,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=1,YEAR=2013,MONTH=11,WEEK_OF_YEAR=48,WEEK_OF_MONTH=1,DAY_OF_MONTH=1,DAY_OF_YEAR=335,DAY_OF_WEEK=1,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=1,HOUR_OF_DAY=13,MINUTE=45,SECOND=8,MILLISECOND=339,ZONE_OFFSET=28800000,DST_OFFSET=0]
    48

    但是同样的代码在android环境下就成了这样 周数变成了49
    java.util.GregorianCalendar[time=1385876864988,areFieldsSet=true,lenient=true,zone=Asia/Shanghai,firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=1,YEAR=2013,MONTH=11,WEEK_OF_YEAR=49,WEEK_OF_MONTH=1,DAY_OF_MONTH=1,DAY_OF_YEAR=335,DAY_OF_WEEK=1,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=1,HOUR_OF_DAY=13,MINUTE=47,SECOND=44,MILLISECOND=988,ZONE_OFFSET=28800000,DST_OFFSET=0]
    49

    不知道是什么原因,求解释
    2 条回复    1970-01-01 08:00:00 +08:00
    jinyang656
        2
    jinyang656  
    OP
       2013-12-02 19:08:02 +08:00
    @xell 这个情况我也碰到过,set之后需要get一次日期时间什么的才会更新

    但是这次的情况不知何原因了

    等有时间得自习看看源码了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3257 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 00:49 · PVG 08:49 · LAX 16:49 · JFK 19:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.