日期时间工具类

最近开发工作过程中遇到一些日期时间相关的问题,发现有些东西都忘了,空闲的时候整理了一下,写了一个工具类。
`​

package com.utils;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateUtils {
/**
* 通过Date类获取时间
* @return
*/
public static String getDateByDate(){
Date date = new Date();
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-HH-dd HH:mm:ss");
String dateStr=dateFormat.format(date);
System.out.println(dateStr);
return dateStr;
}

/**
 * 通过Calendar类获取时间
 * @return
 */
public static String getDateByCalendar(){
    Calendar calendar = Calendar.getInstance();
    Date date=calendar.getTime();
    SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-HH-dd HH:mm:ss");
    String dateStr=dateFormat.format(date);
    System.out.println(dateStr);
    return  dateStr;
}

/**
 * 通过字符串获取时间
 * @param dateStr
 * @return
 */
public static Date formString(String dateStr){
    SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-HH-dd HH:mm:ss");
    try {
        Date date=dateFormat.parse(dateStr);
        System.out.println(date);
        return date;
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return null;
}

/**
 * 通过时间戳获取时间
 * @param time
 * @return
 */
public static String  getByLong(long time){
    SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-HH-dd HH:mm:ss");
    String date=dateFormat.format(time);
    return date;
}

/**
 * 获取系统时间,时间戳
 * @return
 */
public static long getCurrentTime(){
    //方式一

// Date date = new Date();
// long time=date.getTime();

    //方式二
    long time=System.currentTimeMillis();
    return time;
}

/**
 * 获取当前年月日
 * @return
 */
public static void getYearMonthDay(){
    //第一种,通过Calendar类获取
    Calendar now = Calendar.getInstance();
    System.out.println("年: " + now.get(Calendar.YEAR));
    System.out.println("月: " + (now.get(Calendar.MONTH) + 1) + "");
    System.out.println("日: " + now.get(Calendar.DAY_OF_MONTH));
    System.out.println("时: " + now.get(Calendar.HOUR_OF_DAY));
    System.out.println("分: " + now.get(Calendar.MINUTE));
    System.out.println("秒: " + now.get(Calendar.SECOND));
    System.out.println("当前时间毫秒数:" + now.getTimeInMillis());
    //第二种,通过Date类获取
    Date date = new Date();
    DateFormat df1 = DateFormat.getDateInstance();//日期格式,精确到日
    System.out.println(df1.format(date));
    DateFormat df2 = DateFormat.getDateTimeInstance();//可以精确到时分秒
    System.out.println(df2.format(date));
    DateFormat df3 = DateFormat.getTimeInstance();//只显示出时分秒
    System.out.println("只显示出时分秒:"+df3.format(date));
    DateFormat df4 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL); //显示日期,周,上下午,时间(精确到秒)
    System.out.println("显示日期,周,上下午,时间(精确到秒):"+df4.format(date));
    DateFormat df5 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); //显示日期,上下午,时间(精确到秒)
    System.out.println("显示日期,上下午,时间(精确到秒):"+df5.format(date));
    DateFormat df6 = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT); //显示日期,上下午,时间(精确到分)
    System.out.println("显示日期,上下午,时间(精确到分):"+df6.format(date));
    DateFormat df7 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM); //显示日期,时间(精确到分)
    System.out.println("显示日期,时间(精确到分):"+df7.format(date));

    String [] dates=new SimpleDateFormat("yyyy-MM-dd").format(date).split("-");
    String year=dates[0];
    String month=dates[1];
    String day=dates[2];
    String [] months=new SimpleDateFormat("HH:mm:ss").format(date).split(":");
    String hour=dates[0];
    String minute=dates[1];
    String seconde=dates[2];
}

/**
 * 获取前一段时间/后一段时间
 */
public static void beforTime(){
    //根据现在时间计算
    Calendar now = Calendar.getInstance();
    now.add(Calendar.YEAR, 1); //现在时间是1年后
    System.out.println(now);
    now.add(Calendar.YEAR, -1); //现在时间是1年前
    System.out.println(now);

    //根据某个特定的时间 date (Date 型) 计算
    Calendar specialDate = Calendar.getInstance();
    specialDate.setTime(new Date()); //注意在此处将 specialDate 的值改为特定日期
    specialDate.add(Calendar.YEAR, 1); //特定时间的1年后
    System.out.println(specialDate);
    specialDate.add(Calendar.YEAR, -1); //特定时间的1年前
    System.out.println(specialDate);
}

/**
 * 计算两个日期相差多少小时,分钟,毫秒
 */
public static void betweenDay() throws ParseException {
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date d1 = df.parse("2017-12-20 12:19:19");
    Date d2 = df.parse("2017-12-20 11:40:34");
    long nd = 1000 * 24 * 60 * 60;
    long nh = 1000 * 60 * 60;
    long nm = 1000 * 60;
    long ns = 1000;
    // 获得两个时间的毫秒时间差异
    long diff = d1.getTime() - d2.getTime();
    // 计算差多少天
    long day = diff / nd;
    // 计算差多少小时
    long hour = diff % nd / nh;
    // 计算差多少分钟
    long min = diff % nd % nh / nm;
    // 计算差多少秒//输出结果
    long sec = diff % nd % nh % nm / ns;
    System.out.println(day + "天" + hour + "小时" + min + "分钟"+ sec + "秒");
}

public static void main(String[] args) {

// getDateByDate();
// formString("2021-15-27 15:42:44");
// getYearMonthDay();

}

}

}
​`

posted @ 2021-09-27 17:16  donggela  阅读(46)  评论(0)    收藏  举报