前端使用 element 的周选择器,是基于 momentJS 的,但是时间与 Java 计算的却不一样 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jiangnan01
V2EX    Java

前端使用 element 的周选择器,是基于 momentJS 的,但是时间与 Java 计算的却不一样

  •  
  •   jiangnan01 2020-09-18 10:20:13 +08:00 2805 次点击
    这是一个创建于 1856 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT,现在的需求是要做一个报表提醒功能,用户设置一个报表有效期限例如 2020 年第 1 到 2021 年第 52 周,并且每周三提醒当前周的报表。但是 java 在执行的时候需要知道当天属于当年的第几周,使用 Calendar 类转换的时候与前端周选择器控件输出的不一一致,尤其是跨年的时候,前端计算出来的可能是当年有 53 周,java 计算可能只有 52 周。所以想知道大家是怎么解决这类周期转换问题的

    10 条回复    2020-09-18 13:34:52 +08:00
    ITsWHY
        1
    ITsWHY  
       2020-09-18 10:34:05 +08:00
    日期格式的问题我们是前端做的
    easonHHH
        2
    easonHHH  
       2020-09-18 10:38:03 +08:00
    一般的 API 都支持配置从索引 0 开始或者从 1 开始(没有自己封装一层也行),又或者是周一 /周日作为周开始的吧,如果这些配置都统一的情况下,计算出来就是一样
    Torpedo
        3
    Torpedo  
       2020-09-18 10:44:44 +08:00
    我记得是部分浏览器上,java 的 utc 时间解析和 js 不一样。
    用 unix 时间戳就没事
    jiangnan01
        4
    jiangnan01  
    OP
       2020-09-18 10:45:05 +08:00
    @ITsWHY 在报表配置的时候遇到这个问题,我们也是这样做的,我前端给 java 把日期区间额外转换一份对应的第 N 周-第 n 周的数据,现在因为这个报表提醒是 java 后台自己跑的定时任务,需要 java 获取当前的时间然转换成当前属于第几周,这个时候跟前端转换的可能不一样
    jiangnan01
        5
    jiangnan01  
    OP
       2020-09-18 10:46:00 +08:00
    @Torpedo 是在 chrome 运行的
    jiangnan01
        6
    jiangnan01  
    OP
       2020-09-18 10:48:02 +08:00
    @easonHHH 请问 JAVA 是怎么设置这个周几作为一周开始的呢?我只知道前端可以使用 momentJS 设置语言然后设置周几作为一周开始,甚至一年的第一周以几月几日开始
    easonHHH
        7
    easonHHH  
       2020-09-18 0:55:21 +08:00
    @jiangnan01 #6 Java 不熟,但是看了一眼 API 文档里面应该是有的
    https://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html
    setFirstDayOfWeek(int value)
    Sets what the first day of the week is; e.g., SUNDAY in the U.S., MONDAY in France.
    jiangnan01
        8
    jiangnan01  
    OP
       2020-09-18 11:36:17 +08:00
    @easonHHH 谢谢,找到了,再加上 setMinimalDaysInFirstWeek 这个方法可以和前端对应上了
    Justin13
        9
    Justin13  
       2020-09-18 12:42:00 +08:00 via Android
    isoweek 和 us week 的区别,方法就是前后端用同一套规则
    renmu123
        10
    renmu123  
       2020-09-18 13:34:52 +08:00
    都用符合 iso 规范的库吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2722 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 09:39 PVG 17:39 LAX 02:39 JFK 05:39
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86