有了这个日期工具类,让日期转化不再烦恼

想必程序员在开发过程中,遇到日期转化肯定避免不了的。它让人爱恨不已,而有些又记不住,每次遇到都得问度娘。我最近在开发过程中亦是如此。

为了让自己更好的记忆,方便以后遇到日期类型转化相关开发。因此,自己作了适当的整理,编写了一个日期工具类,包括获得今天日期、昨天日期、明天日期、日期和字符串之间转化等相关转化。希望这个日期工具类,也能提高你对日期转化的开发效率。

日期工具类:DateTools.java

package com.hrg;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/**
 * 日期工具类
 * @author 格姗知识圈
 */
public class DateTools {

      /**
        * 日期转化为指定日期格式类型
        * @param date 日期
        * @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss
        * @return
        */
       public static String dateToString(Date date,String pattern){
           SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式
           String date_str = sdf.format(date);//日期转化为指定格式
           return date_str;
       }

       /**
        * 日期字符串转化为指定日期格式类型
        * @param date_str 日期字符串
        * @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss
        * @return
        * @throws ParseException
        */
       public static Date stringToDate(String date_str,String pattern) throws ParseException {
           SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式
           Date date = sdf.parse(date_str);//日期转化为指定格式
           return date;
       }

       /**
        * 获得今天日期
        * @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss
        * @return
        */
       public static String getToday(String pattern){
           Date date = new Date();//今天日期
           SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式
           String today = sdf.format(date);//日期转化为指定格式
           return today;
       }

       /**
        * 获得明天日期
        * @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss
        * @return
        */
       public static String getTomorrow(String pattern){
           Date date = new Date();//今天日期
           Calendar cal = new GregorianCalendar();
           cal.setTime(date);//设置时间
           cal.add(Calendar.DATE,1);//把日期往后增加一天.整数往后推,负数往前移动
           date = cal.getTime();//这个时间就是日期往后推一天的日期结果,即明天日期
           SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式
           String tommorrow = sdf.format(date);//明天日期
           return tommorrow;
       }

       /**
        * 获得昨天日期
        * @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss
        * @return
        */
       public static String getYesterday(String pattern){
           Date date = new Date();//今天日期
           Calendar cal = new GregorianCalendar();
           cal.setTime(date);//设置时间
           cal.add(Calendar.DATE,-1);//把日期往后增加一天.整数往后推,负数往前移动
           date = cal.getTime();//这个时间就是日期往前推一天的日期结果,即昨天日期
           SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式
           String yesterday = sdf.format(date);//昨天日期
           return yesterday;
       }

       /**
        * 获得指定日期的后一天
        * @param date 指定日期
        * @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss
        * @return
        * @throws ParseException
        */
       public static Date getAfterDay(Date date,String pattern) throws ParseException {
           Calendar cal = new GregorianCalendar();
           cal.setTime(date);//设置时间
           cal.add(Calendar.DATE,1);//把日期往后增加一天.整数往后推,负数往前移动
           date = cal.getTime();//这个时间就是日期往后推一天的日期结果,即后一天日期
           SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式
           String next_date_str = sdf.format(date);//后一天日期
           //将日期字符串转化为指定日期格式类型
           Date after_date =  stringToDate(next_date_str,pattern);
           return after_date;
       }

       /**
        * 获得指定日期的后一天
        * @param date_str 指定日期字符串
        * @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss
        * @return
        * @throws ParseException
        */
       public static String getAfterDay(String date_str,String pattern) throws ParseException {
           //将日期字符串转化为指定日期格式类型
           Date date = stringToDate(date_str,pattern);
           Calendar cal = new GregorianCalendar();
           cal.setTime(date);//设置时间
           cal.add(Calendar.DATE,1);//把日期往后增加一天.整数往后推,负数往前移动
           date = cal.getTime();//这个时间就是日期往后推一天的日期结果,即后一天日期
           SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式
           String after_date_str = sdf.format(date);//后一天日期
           return after_date_str;
       }

       /**
        * 获得指定日期的前一天
        * @param date 指定日期
        * @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss
        * @return
        * @throws ParseException
        */
       public static Date getBeforetDay(Date date,String pattern) throws ParseException {
           Calendar cal = new GregorianCalendar();
           cal.setTime(date);//设置时间
           cal.add(Calendar.DATE,-1);//把日期往后增加一天.整数往后推,负数往前移动
           date = cal.getTime();//这个时间就是日期往后推一天的日期结果,即前一天日期
           SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式
           String before_date_str = sdf.format(date);//前一天日期
           //将日期字符串转化为指定日期格式类型
           Date before_date =  stringToDate(before_date_str,pattern);
           return before_date;
       }

       /**
        * 获得指定日期的前一天
        * @param date_str 指定日期字符串
        * @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss
        * @return
        * @throws ParseException
        */
       public static String getBreforeDay(String date_str,String pattern) throws ParseException {
           //将日期字符串转化为指定日期格式类型
           Date date = stringToDate(date_str,pattern);
           Calendar cal = new GregorianCalendar();
           cal.setTime(date);//设置时间
           cal.add(Calendar.DATE,-1);//把日期往后增加一天.整数往后推,负数往前移动
           date = cal.getTime();//这个时间就是日期往后推一天的日期结果,即前一天日期
           SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式
           String before_date_str = sdf.format(date);//前一天日期
           return before_date_str;
       }
}

测试类:Test.java

package com.hrg;

import java.text.ParseException;

/**
 * 测试类
 * @author 格姗知识圈
 */
public class Test {

   public static void main(String[] args) throws ParseException {

       //日期格式类型
       String pattern = "yyyy-MM-dd";

       //获得今天日期
       System.out.println("---------获得今天日期---------");
       String today = DateTools.getToday(pattern);
       System.out.println("今天日期:"+today);

       //获得明天日期
       System.out.println("---------获得明天日期---------");
       String tomorrow = DateTools.getTomorrow(pattern);
       System.out.println("明天日期:"+tomorrow);

       //获得昨天日期
       System.out.println("---------获得昨天日期---------");
       String yesterday = DateTools.getYesterday(pattern);
       System.out.println("昨天日期:"+yesterday);

       //获得指定日期的后一天
       System.out.println("---------获得指定日期的后一天---------");
       String date_str = "2018-10-03";
       System.out.println("指定日期:"+date_str);
       String after_date = DateTools.getAfterDay(date_str,pattern);
       System.out.println("指定日期的后一天:"+after_date);

       //获得指定日期的后一天
       System.out.println("---------获得指定日期的前一天---------");
       System.out.println("指定日期:"+date_str);
       String before_date = DateTools.getBreforeDay(date_str,pattern);
       System.out.println("指定日期的前一天:"+before_date);
   }
}

运行结果:

---------获得今天日期---------
今天日期:2018-11-20
---------获得明天日期---------
明天日期:2018-11-21
---------获得昨天日期---------
昨天日期:2018-11-19
---------获得指定日期的后一天---------
指定日期:2018-10-03
指定日期的后一天:2018-10-04
---------获得指定日期的前一天---------
指定日期:2018-10-03
指定日期的前一天:2018-10-02

你看完之后,相信对日期转化有了更好的了解。当然,代码里面有部分是冗余的,主要是为了方便让大家清晰看懂。你看懂理解后,可以根据业务需要进行适当的修改。

原文地址:https://www.cnblogs.com/geshanzsq/p/11106291.html

时间: 2024-08-29 02:24:33

有了这个日期工具类,让日期转化不再烦恼的相关文章

dateUtil 日期工具类

package com.lbi.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.slf4j.Logg

Java日期工具类,Java时间工具类,Java时间格式化

Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copyright  蕃薯耀 2017年2月4日 15:03:27 星期六 http://www.cnblogs.co

日期工具类 - DateUtil.java

日期工具类,提供对日期的格式化和转换方法.获取区间日期.指定日期.每月最后一天等. 源码如下:(点击下载 -DateUtil.java.commons-lang-2.6.jar ) import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import

Joda开源扩展插件,神马日期工具类都是浮云!!Demo下载运行即可查看,注释齐全,真心好用,分享大家。

原文:Joda开源扩展插件,神马日期工具类都是浮云!!Demo下载运行即可查看,注释齐全,真心好用,分享大家. 源代码下载地址:http://www.zuidaima.com/share/1550463610604544.htm 真心好用,分享大家.

JS 日期工具类-基于yDate

源码下载 前言:最近在用到JS日期操作时,发现有一些不方便,于是搜素了一些网上的资料,基于一个开源工具类-yDate 进行了个性化定制,封装成了一个日期工具类工具函数大概介绍:1.普通的日期操作2. 获得一些绝对时间,如1970年 到现在的绝对年,月份,日期,描述,毫秒数等等3. 日期比较,克隆,开始时间,结束时间,字符串(输出时可以自定义格式)输出等4. 日期相加,相减(返回一个新的日期对象), 比如1月31日 1天会自动变为 2月1日等等5. 简化构造,可以传入字符串进行构造等等6. 更多请

JAVA 日期工具类的总结

一般,在项目中,我们会会经常使用到日期的各种方式的处理,在各个业务逻辑操作中,都需要相关的日期操作,因此,实现项目中的日期工具类的提出,还是十分重要的,下面,就项目中常用到的日期的相关操作方式,做了一个小的工具类,方便项目使用,也方便以后的复用和查询.下面见代码: /** * * 〈一句话功能简述〉<br> * 〈功能详细描述〉 日期工具类 * * @author 12061799 * @see [相关类/方法](可选) * @since [产品/模块版本] (可选) */ public cl

常用的日期工具类

对于开发中的日期工具类进行总结: package com.yunhwa.base.util; import java.math.BigDecimal;import java.sql.SQLException;import java.sql.Timestamp;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;

android日期工具类DateHelper

日期工具类DateHelper 一个工具类,可以得到指定月份的天数,可以得到以前或以后多少天.周.月.年的日期等. 代码如下: import android.annotation.SuppressLint; import android.text.TextUtils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Dat

日期工具类 DateUtils(继承org.apache.commons.lang.time.DateUtils类)

/** * */ package com.dsj.gdbd.utils.web; import org.apache.commons.lang3.time.DateFormatUtils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.regex.Matcher; /** * 日期工具类, 继承org.apache.commons.l