美文网首页
java-时间控件一些经验

java-时间控件一些经验

作者: go_2021 | 来源:发表于2021-12-31 12:01 被阅读0次

    故事的六要素,就是时间,地点,人物,事件,观点,感悟。
    铺排好这六要素,就是构成故事的基本原理。
    如果想讲好故事,可以从这6要素开始。

    时间控件感觉比较简单的,但是会有些容易出问题的地方,记录下自己一些经验:

    1. 和mysql交互时指定微秒

    系统之间接口回调,失败重试时,会在表里记录下一个重试时间,每个5分钟检查下,有没法的就重发。因为存的时候和取的时候都没有加微秒,测试服是正常,但是到线上就出问题了,存的时候指定微秒,取的时候也指定即可。

     Calendar calendar1 = Calendar.getInstance();
            calendar1.set(Calendar.SECOND, 0);
            //需要制定微秒 要不可能会查不到  测试服没问题 但是到了线上sql就加上
            calendar1.set(Calendar.MILLISECOND, 0); 
            Date time = calendar1.getTime();
    
    image.png
    2. 计算指定日期是年的第几周
    自然周:周跨年时,根据这个周的周四是哪一年的来判断是属于哪一年。
        static int dateWeek(Date date) {
            LocalDateTime localDateTime = date.toInstant()
                    .atZone(ZoneId.systemDefault())
                    .toLocalDateTime();
            WeekFields weekFields = WeekFields.of(DayOfWeek.MONDAY, 4);
            return localDateTime.get(weekFields.weekOfWeekBasedYear());
        }
    
    3. 计算用户生日还差几天

    库里存的dateTime,本来想用sql来实现,感觉写的比较费劲,还是较少mysql的一些压力吧,java判断。

    SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
                Calendar cToday = Calendar.getInstance(); // 存今天
                Calendar cBirth = Calendar.getInstance(); // 存生日
                cBirth.setTime(myFormatter.parse(birthday)); // 设置生日
                cBirth.set(Calendar.YEAR, cToday.get(Calendar.YEAR)); // 修改为本年
                if (cBirth.get(Calendar.DAY_OF_YEAR) < cToday.get(Calendar.DAY_OF_YEAR)) {
                    // 生日已经过了,要算明年的了
                    days = cToday.getActualMaximum(Calendar.DAY_OF_YEAR) - cToday.get(Calendar.DAY_OF_YEAR);
                    days += cBirth.get(Calendar.DAY_OF_YEAR);
                } else {
                    // 生日还没过
                    days = cBirth.get(Calendar.DAY_OF_YEAR) - cToday.get(Calendar.DAY_OF_YEAR);
                }
    
    4. update字段

    对于更新记录时就要更新的时间,可以用timeStamp字段来存储,勾选修改就更新为当前时间。sql和代码不用管这个字段。

    相关文章

      网友评论

          本文标题:java-时间控件一些经验

          本文链接:https://www.haomeiwen.com/subject/vnjgqrtx.html