java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java时间工具类

Java编写时间工具类ZTDateTimeUtil的示例代码

作者:Recently 祝祝

这篇文章主要为大家详细介绍了如何利用Java编写时间工具类ZTDateTimeUtil,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下

1.返回指定格式的当前时间,Date-->FormatString,Date类型转Strig

 Date date = new Date();
 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
 String datestring  = simpleDateFormat.format(date);
 System.out.printf(datestring);

2.返回固定格式的Date类型时间Date---》ToString---》ToDate,Date类型格式化成Date

public  static String TimeFormat ="yyyy-MM-dd";
    public static void main(String[] args) {
        Date date =new Date(System.currentTimeMillis());
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(TimeFormat);
        String dateformat=simpleDateFormat.format(date);
        System.out.printf(dateformat);
        Date dateafterFormat =null;
        try {
            dateafterFormat=simpleDateFormat.parse(dateformat);
            System.out.printf(String.valueOf(dateafterFormat));
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
    }

3.字符串转日期 String格式化成String

//parse(String text, ParsePosition pos)
//解析字符串中的文本以Date生成,parase需要背用try-catch包围
 String dateTime ="2023-01-16 17:35:16";
  SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
    try {
        Date date =simpleDateFormat.parse(dateTime);
        System.out.printf(date.toString());
    } catch (ParseException e) {
        throw new RuntimeException(e);
}

4.两时间关系判断构件

 //时间相等返回0,time1大于time2返回1,time1小于time2返回-1
  Date time1 = new Date(System.currentTimeMillis());
  String date ="2023-01-17 17:35:16";
   Date time2 = null;
   try {
       time2 = new SimpleDateFormat("yyyy-MM-dd").parse(date);
   } catch (ParseException e) {
       throw new RuntimeException(e);
   }
   int flag =time1.compareTo(time2);
   System.out.printf(flag+"");

5.Date转换为字符串:Date格式化成String

 public static String date2Str(Date date, String format) {
        if (null == date) {
            return null;
        }
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return sdf.format(date);
}

6.String类型时间戳格式化成日期格式String

public static String changesStringTimestamToformat(String timestamp){
        LocalDateTime parse = LocalDateTime.ofInstant(Instant.ofEpochMilli(Long.parseLong(timestamp)), ZoneId.systemDefault());
        String format = parse.format(DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss"));
        return format;
    }

知识补充

时间格式化工具类:时间格式化工具,一秒前,一分钟前,一小时前,昨天,一天前

package com.awifi.cloudnative.container.rbac.user.provider.utils;

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

/**
* @Author 张鑫
* @Date 2022/4/20
* @Param 
* @return 
**/
public class dataFormatUtils {
   
   
   /**
    * 时间格式化
    *
    * @param date
    * @return
    */
   public static String format(Date date) {
       // 计算出相差天数
       int days = differentDays(date, new Date());
       // 同一天
       if (0 == days) {
           // 计算出时间差
           long delta = new Date().getTime() - date.getTime();
           // 小于一分钟
           if (delta < 1L * 60000L) {
               long seconds = toSeconds(delta);
               return (seconds <= 0 ? 1 : seconds) + "秒前";
           }
           // 小于一小时
           else if (delta < 1L * 3600000L) {
               long minutes = toMinutes(delta);
               return (minutes <= 0 ? 1 : minutes) + "分钟前";
           }
           // 小于24小时
           else if (delta < 24L * 3600000L) {
               long hours = toHours(delta);
               return (hours <= 0 ? 1 : hours) + "小时前";
           }
       }
       // 不同一天
       else {
           if (1 == days) {
               return "昨天";
           }
           // 几天前
           else if (3 >= days) {
               return days + "天前";
           }
       }
       // 格式化时间
       return getYmdHm(date);
   }

   /**
    * 获取秒
    *
    * @param date
    * @return
    */
   private static long toSeconds(long date) {
       return date / 1000L;
   }

   /**
    * 获取分钟
    *
    * @param date
    * @return
    */
   private static long toMinutes(long date) {
       return toSeconds(date) / 60L;
   }

   /**
    * 获取小时
    *
    * @param date
    * @return
    */
   private static long toHours(long date) {
       return toMinutes(date) / 60L;
   }

   /**
    * 时间格式化,yyyy-MM-dd HH:mm
    */
   public static String getYmdHm(Date date) {
       DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
       return df.format(date);
   }

   /**
    * 获取天数
    *
    * @param oldDate
    * @param newDate
    * @return
    */
   public static int differentDays(Date oldDate, Date newDate) {
       Calendar oldCal = Calendar.getInstance();
       oldCal.setTime(oldDate);

       Calendar newCal = Calendar.getInstance();
       newCal.setTime(newDate);
       int oldDay = oldCal.get(Calendar.DAY_OF_YEAR);
       int newDay = newCal.get(Calendar.DAY_OF_YEAR);

       int oldYear = oldCal.get(Calendar.YEAR);
       int newYear = newCal.get(Calendar.YEAR);
       // 不是同一年
       if (oldYear != newYear) {
           int timeDistance = 0;
           for (int i = oldYear; i < newYear; i++) {
               //如果是闰年
               if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
                   timeDistance += 366;
               }
               //不是闰年
               else {
                   timeDistance += 365;
               }
           }
           return timeDistance + (newDay - oldDay);
       }
       // 是同一年
       else {
           return newDay - oldDay;
       }
   }
}

到此这篇关于Java编写时间工具类ZTDateTimeUtil的示例代码的文章就介绍到这了,更多相关Java时间工具类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文