Java各种日期计算

1、时间格式化通用处理。

/**
     * 将用户给定的时间以指定的时间格式进行格式化。<br/>
     *
     * @param dateTime 时间
     * @param dateTimeFmat 时间格式
     * @return String - 格式化后的时间内容
     */
    public static final String fmatLongToString(long dateTime, String dateTimeFmat) {
        return new SimpleDateFormat(dateTimeFmat).format(dateTime);
    }
    /**
     * 字符串时间转换为long类型处理。<br/>
     *
     * @param date 时间字符串
     * @param fmat 时间格式
     * @return long - 转换结果(异常时返回 -1L)
     */
    public static final long fmatStringToLong(String date, String fmat) {
        long rsltDate = -1L;
        try {
            rsltDate = new SimpleDateFormat(fmat).parse(date).getTime();
        } catch (ParseException e) {
            rsltDate = -1L;
        }
        return rsltDate;
    }

2、以指定的日期,取得其所在周的周一日期和周日日期。

/**
     * 取得指定日期所在周的周一日期。<br/>
     *
     * @param dateTime 指定日期
     * @return long - 日期所在周的周一日期
     */
    public static final long getFrstDateOfWeekByDate(long dateTime) {

// 日期处理对象初始化
        Calendar cldr = Calendar.getInstance();
        // 指定时间设置
        cldr.setTimeInMillis(dateTime);

// 指定时间周期判断
        if (cldr.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {

// 周日时,计算本周一日期
            cldr.add(Calendar.DAY_OF_MONTH, -6);
        } else if (cldr.get(Calendar.DAY_OF_WEEK) > Calendar.MONDAY) {

// 周二至周六时,计算本周一日期
            cldr.add(Calendar.DAY_OF_MONTH, (2 - cldr.get(Calendar.DAY_OF_WEEK)));
        }

// 处理结果返回
        return cldr.getTimeInMillis();
    }
    /**
     * 取得指定日期所在周的周日日期。<br/>
     *
     * @param dateTime 指定日期
     * @return long - 日期所在周的周日日期
     */
    public static final long getLastDateOfWeekByDate(long dateTime) {

// 日期处理对象初始化
        Calendar cldr = Calendar.getInstance();
        // 指定时间设置
        cldr.setTimeInMillis(dateTime);

// 指定时间周期判断
        if (cldr.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) {

// 周一至周六时,计算本周日日期
            cldr.add(Calendar.DAY_OF_MONTH, (8 - cldr.get(Calendar.DAY_OF_WEEK)));
        }

// 处理结果返回
        return cldr.getTimeInMillis();
    }

时间: 2024-07-30 04:38:47

Java各种日期计算的相关文章

java根据日期计算24节气

1 package com.test; 2 3 import java.util.Calendar; 4 import java.util.Date; 5 6 /** 7 * Created by json 8 */ 9 public class SolarTermsUtil { 10 /** 11 * 计算得到公历的年份 12 */ 13 private int gregorianYear; 14 15 /** 16 * 计算得到公历的月份 17 */ 18 private int grego

JAVA中日期转换和日期计算的方法

日期的格式有很多形式,在使用过程中经常需要转换,下面是各种类型转换的使用例子以及日期计算方法的例子. 一.不同格式日期相互转换方法 1 public class TestDateConvertUtil { 2 3 public static void main(String[] args) throws ParseException { 4 // 获取当前时间 5 Date date = new Date(); // 获取当前时间 6 long timestamp = System.curren

java实现的日期计算

这里讲的日期计算比较偏,用到的地方很少(比如获取今天所在周的周一或者周日,获取今天是本月的第几周...),这些方法是以前做项目遗留下来的,现在整理一下,跟大家分享. 工具类主要有一下方法: public static Date getFirstMondayOfMonth(String dateString, String dateFormat) throws Exception 获取指定月份的第一个星期一,比如2014-12 月的第一个周一是2014-12-01 public static in

Java中日期的总结

#####1.日期 日期:主要使用的是*java.util.Date* 以及*java.sql.Date* , sql中的Date是util中Date的子类,关系如下,但是如果直接转换的话会出现Cast转换错误. - java.lang.Object - java.util.Date - java.sql.Date 之间的转换可以通过如: ```javajava.util.Date utildate=new java.util.Date(System.getCurrentTime());java

Java 中日期的几种常见操作 —— 取值、转换、加减、比较

Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几分钟起身活动一下,去泡杯咖啡,便是极好的,嘿嘿.当然,我只提供了可行的解决方案,并不保证是最佳实践,欢迎讨论. 1. 日期取值 在旧版本 JDK 的时代,有不少代码中日期取值利用了 java.util.Date 类,但是由于 Date 类不便于实现国际化,其实从 JDK1.1 开始,就更推荐使用 java.util.Calendar 类进行时间和日期方面的处

CalendarHelper日期计算工具,各种日期的获取和计算

今天分享一个日期获取和计算的工具类,这个最初是用在项目中获取每周每月日期用的. package com.ran.interview; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; /** * @auth

java获取日期之间的差异

转载请注明出处.谢谢http://blog.csdn.net/harryweasley/article/details/42121485 当想到要计算差值.我们肯定想的是"2014.12.14"-"2014.12.20"=4,这个方案,可是java并没有直接给我们这个方案,所以我想的是,将字符串转化为Date类型,继而又将 date转化为Calendar类型,通过Calendar.add()方法来解决这种方法. package lgx.java.test; impo

java — 时间日期类

java -- 时间日期类的简单操作 一.java.util.Date类 获取系统时间 1 public static void main(String[] args) { 2 // 使用Date获取系统时间 3 Date date = new Date(); 4 System.out.println(date); 5 } 输出结果:Sun Jan 13 12:30:30 CST 2019 输出结果不符合中国人的阅读习惯,我们得使用 SimpleDateFormat类 进行一些操作,按照我们自己

Java中日期格式化YYYY-DD的坑

摘自:https://www.cnblogs.com/tonyY/p/12153335.html Java中日期格式化YYYY-DD的坑 2020-01-05 19:27  兔子托尼啊  阅读(115)  评论(0)  编辑  收藏 写这篇博文是记录下跨年的bug.去年隔壁组的小伙伴就是计算两个日期之间间隔的天数,因为跨年的原因计算有误. 当时测试组的小姐姐也没有模拟出来这种场景,导致上生产环境直接影响线上的数据. 今天逛技术论论坛正好遇到Java日期的操作bug. 1 yyyy 和 YYYY