【java工具类-时间与日期】获取俩个日期的相差天数日期格式化日期类型转换Date转化为JDK的LocalDate 格式的日期工具类处理日期类型与字符串互转计算俩个日期时分秒

本文主要是介绍【java工具类-时间与日期】获取俩个日期的相差天数日期格式化日期类型转换Date转化为JDK的LocalDate 格式的日期工具类处理日期类型与字符串互转计算俩个日期时分秒,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1、距离今天的日期天数

2、在日志监控耗时经常使用的计时器,到毫秒级我们使用计时器

 3、日期的格式化

获取系统时间,格式 yyyy-MM-dd HH:mm:ss

获取字符串系统时间,格式 yyyyMMddHH:mm:ss

时间格式化,字符串与2021年1月15日23:37:50时间格式互相转换

格式化时间,Date转化为String字符串

返回时间段内俩个时间节点相差的所有小时

获取两个日期之间周数列表,俩个日期相差的直接所有周总数

获取两个日期之间相差多少个月 月数列表

获取某一天的开始时间

获取某一天的结束时间

获取俩个时间点的差值转换为分钟或者秒

 获取俩个时间点的差值转换为分钟或者秒

 

全部的工具类,可以直接作为参考,


 

前言:

工作或者使用中java处理日期是经常遇到的问题,所以我们要对Date类型的处理进行架构,能够使之复用。

比如说实现下面的工具类;

又比如说使用功能jdk8版本的获取俩个日期的时间;YYYY-MM-DD这种格式日期的相隔时间;

1、距离今天的日期天数

   public static final String format1 = "yyyy-MM-dd";
    public static final String format2 = "yyyy-MM-dd HH:mm:ss";
    public static final String format3 = "yyyyMMddHHmmss";
    public static final String format4 = "yyyyMMdd";
    public static final String format5 = "yyyy/MM/dd HH";
    public static final String format6 = "yyyy/MM/dd";
    public static final String format7 = "yyyy-MM";
    public static final String format8 = "yyyyMM";
    public static final String format9 = "yyyy/ww";
    public static final String format10 = "yyyy/MM";
 

  可以直接计算出来,距离今天有多久了,一共有多少天

 

/***jdk8版本中进行俩个时间节点的相差天数*   与今天日期对比* @return*/
public static Integer getPeriodDays(String  oneDateStr) {LocalDate   startLocalDate = LocalDate.parse(oneDateStr, DateUtil.FORMATTERS_1);LocalDate   todayLocalDate = LocalDate.now();Long  diffDays=Duration.between(startLocalDate.atStartOfDay(),todayLocalDate.atStartOfDay()).toDays();return diffDays.intValue() ;
}

2、在日志监控耗时经常使用的计时器,到毫秒级我们使用计时器

Instant startPostTime = Instant.now();
String ID = httpPostManager.sendGet(SysConfig.CHECK_ID);
Instant endPostTime = Instant.now();
long peridMillis = Duration.between(startPostTime, endPostTime).toMillis();
log.error("当前返回id={}, 请求访问返回结果耗时{}毫秒", Id, peridMillis);

 3、日期的格式化

 /**

获取系统时间,格式 yyyy-MM-dd HH:mm:ss

     *
     * @return  字符串
     */
    public static String getSysDateToString() {
        SimpleDateFormat df = new SimpleDateFormat(FORMAT_DATETIME);
        return df.format(new Date());
    }

    /**

获取字符串系统时间,格式 yyyyMMddHH:mm:ss

     *
     * @return
     */
    public static String getSysDate() {
        SimpleDateFormat df = new SimpleDateFormat(YYYYMMDDHHMMSSS);
        return df.format(new Date());
    }

    /**

时间格式化,字符串与2021年1月15日23:37:50时间格式互相转换

     *
     * @return
     */
    public static String getDateFormat(Date date, String format) {
        SimpleDateFormat df = new SimpleDateFormat(format);
        return df.format(date);
    }


格式化时间,Date转化为String字符串


     */
    public static String format(Date date, String format) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
        return simpleDateFormat.format(date);
    }

 /**


返回时间段内俩个时间节点相差的所有小时


     *
     * @param startTime
     * @param endTime
     * @return
     */
    public static List<String> getHours(Date startTime, Date endTime) {
        // 返回的日期集合
        List<String> hours = Lists.newArrayList();
        DateFormat dateFormat = new SimpleDateFormat(format6);
        Calendar tempStart = Calendar.getInstance();
        tempStart.setTime(startTime);
        Calendar tempEnd = Calendar.getInstance();
        tempEnd.setTime(endTime);
        while (tempStart.before(tempEnd)) {
            String day = dateFormat.format(tempStart.getTime());
            for (String hour : HOURS_DAY) {
                hours.add(day + " " + hour);
            }
            tempStart.add(Calendar.DAY_OF_YEAR, 1);
        }
        return hours;
    }

    /**
     *

获取两个日期之间周数列表,俩个日期相差的直接所有周总数


     *
     * @param startTime
     * @param endTime
     * @return
     */
    public static List<String> getWeeks(Date startTime, Date endTime) {
        List<String> weeks = Lists.newArrayList();
        Calendar start = Calendar.getInstance();
        start.setFirstDayOfWeek(Calendar.MONDAY);
        start.setTime(startTime);
        Calendar end = Calendar.getInstance();
        end.setFirstDayOfWeek(Calendar.MONDAY);
        end.setTime(endTime);
        while (start.before(end)) {
            weeks.add(FORMATTERS_9.format(start.getTime()));
            start.add(Calendar.WEEK_OF_YEAR, 1);
        }
        return weeks;
    }

    /**


获取两个日期之间相差多少个月 月数列表


     *
     * @param startTime
     * @param endTime
     * @return
     */
    public static List<String> getMonths(Date startTime, Date endTime) {
        List<String> weeks = Lists.newArrayList();
        Calendar start = Calendar.getInstance();
        start.setTime(startTime);
        Calendar end = Calendar.getInstance();
        end.setTime(endTime);
        while (start.before(end)) {
            weeks.add(FORMATTERS_10.format(start.getTime()));
            start.add(Calendar.MONTH, 1);
        }
        return weeks;
    }

    /**

获取某一天的开始时间


     *
     * @param currentDate
     * @return
     */
    public static String getStartTime(Date currentDate) {
        SimpleDateFormat df = new SimpleDateFormat(FORMAT_DATETIME);
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(currentDate);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        return df.format(calendar.getTime());
    }

    /**
     *

获取某一天的结束时间


     *
     * @param currentDate
     * @return
     */
    public static String getEndTime(Date currentDate) {
        SimpleDateFormat df = new SimpleDateFormat(FORMAT_DATETIME);
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(currentDate);
        calendar.add(Calendar.DAY_OF_MONTH, 1);
        calendar.add(Calendar.SECOND, -1);
        return df.format(calendar.getTime());
    }

    public static Date getEndDate(Date currentDate) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(currentDate);
        calendar.add(Calendar.DAY_OF_MONTH, 1);
        calendar.add(Calendar.SECOND, -1);
        return calendar.getTime();
    }

    /***

获取俩个时间点的差值转换为分钟或者秒


     * @param startDate
     * @param currentDate
     * @return
     */
    public static String getPeriodDiffTime(Date startDate, Date currentDate) {
        if (startDate != null && currentDate != null) {
            long minuteMillionNum = 1000 * 60;
            // 获得两个时间的毫秒时间差异
            long diff = currentDate.getTime() - startDate.getTime();
            // 计算差多少秒
            long millionminute = diff / 1000;
            // 计算差多少分钟
            long minute = diff / minuteMillionNum;
            if (minute > 0) {
                millionminute = (diff - minute * minuteMillionNum) / 1000;
                return minute + "分钟" + millionminute + "秒";
            } else {
                return Math.abs(millionminute) + "秒";
            }
        }
        return "未知";
    }

    /***


 获取俩个时间点的差值转换为分钟或者秒


     * @param startDate
     * @param currentDate
     * @return
     */
    public static Long getPeriodDiffTimeNum(Date startDate, Date currentDate) {
        if (startDate != null && currentDate != null) {
            // 获得两个时间的毫秒时间差异
            long diff = currentDate.getTime() - startDate.getTime();
            // 计算差多少秒
            long millionminute = diff / 1000;
            return Math.abs(millionminute);
        }
        return 0L;
    }

 

全部的工具类,可以直接作为参考,

 

import com.google.common.collect.Lists;
import org.apache.commons.lang3.StringUtils;import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAccessor;
import java.time.temporal.TemporalQuery;
import java.util.Calendar;
import java.util.Date;
import java.util.List;/*** @author 脚踏实地的做好本职工作,积累* @date 2020/12/3*/
public class DateUtil {/*** 时间格式:"yyyy-MM-dd HH:mm:ss"*/public final static String FORMAT_DATETIME = "yyyy-MM-dd HH:mm:ss";/*** 时间格式:"yyyy-MM-dd HH:mm:ss"*/public final static String YYYYMMDDHHMMSSS = "yyyyMMddHHmmsss";public final static String[] HOURS_DAY = {"00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11","12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23"};public static final String format1 = "yyyy-MM-dd";public static final String format2 = "yyyy-MM-dd HH:mm:ss";public static final String format3 = "yyyyMMddHHmmss";public static final String format4 = "yyyyMMdd";public static final String format5 = "yyyy/MM/dd HH";public static final String format6 = "yyyy/MM/dd";public static final String format7 = "yyyy-MM";public static final String format8 = "yyyyMM";public static final String format9 = "yyyy/ww";public static final String format10 = "yyyy/MM";public static final DateTimeFormatter FORMATTERS_1 = DateTimeFormatter.ofPattern(format1);public static final DateTimeFormatter FORMATTERS_2 = DateTimeFormatter.ofPattern(format2);public static final DateTimeFormatter FORMATTERS_4 = DateTimeFormatter.ofPattern(format4);public static final DateTimeFormatter FORMATTERS_7 = DateTimeFormatter.ofPattern(format7);public static final DateTimeFormatter FORMATTERS_8 = DateTimeFormatter.ofPattern(format8);public static final SimpleDateFormat FORMATTERS_9 = new SimpleDateFormat(format9);public static final SimpleDateFormat FORMATTERS_10 = new SimpleDateFormat(format10);/*** 获取系统时间,格式 yyyy-MM-dd HH:mm:ss** @return*/public static String getSysDateToString() {SimpleDateFormat df = new SimpleDateFormat(FORMAT_DATETIME);return df.format(new Date());}/*** 获取系统时间,格式 yyyy-MM-dd HH:mm:ss** @return*/public static String getSysDate() {SimpleDateFormat df = new SimpleDateFormat(YYYYMMDDHHMMSSS);return df.format(new Date());}/*** 时间格式化** @return*/public static String getDateFormat(Date date, String format) {SimpleDateFormat df = new SimpleDateFormat(format);return df.format(date);}/*** 格式化时间*/public static String format(Date date, String format) {SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);return simpleDateFormat.format(date);}/*** 今天日期*/public static String getToday() {return format(new Date(), format1);}/*** 时间字符串转Date** @param dateStr* @param format* @return*/public static Date parse(String dateStr, String format) {SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);try {return simpleDateFormat.parse(dateStr);} catch (ParseException e) {e.printStackTrace();}return null;}/*** 前一天日期*/public static String previousDay() {return previousNDay(1);}/*** 几一天日期*/public static String previousNDay(int n) {SimpleDateFormat sdf = new SimpleDateFormat(format1);Calendar c = Calendar.getInstance();c.add(Calendar.DATE, -n);Date preDay = c.getTime();String preDayStr = sdf.format(preDay);return preDayStr;}/*** 获取当天24点时间** @return*/public static Long getTimesNight() {Calendar cal = Calendar.getInstance();cal.set(Calendar.HOUR_OF_DAY, 24);cal.set(Calendar.SECOND, 0);cal.set(Calendar.MINUTE, 0);cal.set(Calendar.MILLISECOND, 0);return cal.getTime().getTime();}/*** 获得当天零时零分零秒** @return*/public static Date todayHourDate(int hour) {Calendar calendar = Calendar.getInstance();calendar.setTime(new Date());calendar.set(Calendar.HOUR_OF_DAY, hour);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);return calendar.getTime();}/*** 获得昨天的时间点** @return*/public static Date yesterdayHourDate(int hour) {Calendar calendar = Calendar.getInstance();calendar.setTime(new Date());calendar.add(Calendar.DATE, -1);calendar.set(Calendar.HOUR_OF_DAY, hour);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);return calendar.getTime();}/*** 获取五周前的星期一零点零分零秒** @return*/public static Date getSixWeekAgoTime() {Calendar calendar = Calendar.getInstance();// 设置为本周的星期日calendar.set(Calendar.DAY_OF_WEEK, 1);calendar.add(Calendar.WEEK_OF_MONTH, -5);calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);return calendar.getTime();}/*** 获取五个月前的1号零点零分零秒** @return*/public static Date getSixMonthAgoTime() {Calendar calendar = Calendar.getInstance();calendar.add(Calendar.MONTH, -5);calendar.set(Calendar.DAY_OF_MONTH, 1);calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);return calendar.getTime();}/*** 返回时间段内所有日期天数** @param startTime* @param endTime* @return*/public static List<String> getDays(Date startTime, Date endTime) {// 返回的日期集合List<String> days = Lists.newArrayList();DateFormat dateFormat = new SimpleDateFormat(format6);Calendar tempStart = Calendar.getInstance();tempStart.setTime(startTime);Calendar tempEnd = Calendar.getInstance();tempEnd.setTime(endTime);while (tempStart.before(tempEnd)) {days.add(dateFormat.format(tempStart.getTime()));tempStart.add(Calendar.DAY_OF_YEAR, 1);}return days;}/*** 返回时间段内所有小时** @param startTime* @param endTime* @return*/public static List<String> getHours(Date startTime, Date endTime) {// 返回的日期集合List<String> hours = Lists.newArrayList();DateFormat dateFormat = new SimpleDateFormat(format6);Calendar tempStart = Calendar.getInstance();tempStart.setTime(startTime);Calendar tempEnd = Calendar.getInstance();tempEnd.setTime(endTime);while (tempStart.before(tempEnd)) {String day = dateFormat.format(tempStart.getTime());for (String hour : HOURS_DAY) {hours.add(day + " " + hour);}tempStart.add(Calendar.DAY_OF_YEAR, 1);}return hours;}/*** 获取两个日期之间周数列表** @param startTime* @param endTime* @return*/public static List<String> getWeeks(Date startTime, Date endTime) {List<String> weeks = Lists.newArrayList();Calendar start = Calendar.getInstance();start.setFirstDayOfWeek(Calendar.MONDAY);start.setTime(startTime);Calendar end = Calendar.getInstance();end.setFirstDayOfWeek(Calendar.MONDAY);end.setTime(endTime);while (start.before(end)) {weeks.add(FORMATTERS_9.format(start.getTime()));start.add(Calendar.WEEK_OF_YEAR, 1);}return weeks;}/*** 获取两个日期之间月数列表** @param startTime* @param endTime* @return*/public static List<String> getMonths(Date startTime, Date endTime) {List<String> weeks = Lists.newArrayList();Calendar start = Calendar.getInstance();start.setTime(startTime);Calendar end = Calendar.getInstance();end.setTime(endTime);while (start.before(end)) {weeks.add(FORMATTERS_10.format(start.getTime()));start.add(Calendar.MONTH, 1);}return weeks;}/*** 获取某一天的开始时间** @param currentDate* @return*/public static String getStartTime(Date currentDate) {SimpleDateFormat df = new SimpleDateFormat(FORMAT_DATETIME);Calendar calendar = Calendar.getInstance();calendar.setTime(currentDate);calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);return df.format(calendar.getTime());}/*** 获取某一天的结束时间** @param currentDate* @return*/public static String getEndTime(Date currentDate) {SimpleDateFormat df = new SimpleDateFormat(FORMAT_DATETIME);Calendar calendar = Calendar.getInstance();calendar.setTime(currentDate);calendar.add(Calendar.DAY_OF_MONTH, 1);calendar.add(Calendar.SECOND, -1);return df.format(calendar.getTime());}public static Date getEndDate(Date currentDate) {Calendar calendar = Calendar.getInstance();calendar.setTime(currentDate);calendar.add(Calendar.DAY_OF_MONTH, 1);calendar.add(Calendar.SECOND, -1);return calendar.getTime();}/**** 获取俩个时间点的差值转换为分钟或者秒* @param startDate* @param currentDate* @return*/public static String getPeriodDiffTime(Date startDate, Date currentDate) {if (startDate != null && currentDate != null) {long minuteMillionNum = 1000 * 60;// 获得两个时间的毫秒时间差异long diff = currentDate.getTime() - startDate.getTime();// 计算差多少秒long millionminute = diff / 1000;// 计算差多少分钟long minute = diff / minuteMillionNum;if (minute > 0) {millionminute = (diff - minute * minuteMillionNum) / 1000;return minute + "分钟" + millionminute + "秒";} else {return Math.abs(millionminute) + "秒";}}return "未知";}/**** 获取俩个时间点的差值转换为分钟或者秒* @param startDate* @param currentDate* @return*/public static Long getPeriodDiffTimeNum(Date startDate, Date currentDate) {if (startDate != null && currentDate != null) {// 获得两个时间的毫秒时间差异long diff = currentDate.getTime() - startDate.getTime();// 计算差多少秒long millionminute = diff / 1000;return Math.abs(millionminute);}return 0L;}public enum Quarter {/*** 第一季度*/FIRST(1, "1Q"),/*** 第二季度*/SECOND(4, "2Q"),/*** 第三季度*/THIRD(7, "3Q"),/*** 第四季度*/FOURTH(10, "4Q");/*** 季度的第一天*/private Integer minMonth;/*** 季度名称*/private String name;Quarter(Integer minMonth, String name) {this.minMonth = minMonth;this.name = name;}public Integer getMinMonth() {return minMonth;}public void setMinMonth(Integer minMonth) {this.minMonth = minMonth;}public String getName() {return name;}public void setName(String name) {this.name = name;}}public static class QuarterOfYearQuery implements TemporalQuery<Quarter> {@Overridepublic Quarter queryFrom(TemporalAccessor temporal) {LocalDate now = LocalDate.from(temporal);if (now.isBefore(now.with(Month.APRIL).withDayOfMonth(1))) {return Quarter.FIRST;} else if (now.isBefore(now.with(Month.JULY).withDayOfMonth(1))) {return Quarter.SECOND;} else if (now.isBefore(now.with(Month.OCTOBER).withDayOfMonth(1))) {return Quarter.THIRD;} else {return Quarter.FOURTH;}}}public static LocalDateTime parse(Date date) {if (date == null) {return null;}return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());}public static LocalDateTime parse(String datestr) {if (StringUtils.isNotBlank(datestr)) {return LocalDateTime.parse(datestr, DateTimeFormatter.ofPattern(format2));}return null;}public static Date toDate(LocalDateTime localDateTime) {if (localDateTime == null) {return null;}return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());}public static Long toLong(LocalDateTime localDateTime) {if (null == localDateTime) {return null;}return localDateTime.toInstant(ZoneOffset.of("+8")).toEpochMilli();}/*** 获取两个时间间隔的天数** @param startDate 开始时间* @param endDate   结束时间* @return 间隔的天数*/public static double getIntervalDays(Date startDate, Date endDate) {double interPerid = endDate.getTime() - startDate.getTime();double oneDay = 60 * 60 * 24 * 1000;if (interPerid < 0) {double resultAbs=Math.abs(interPerid / oneDay);double result = Math.round(resultAbs);if(resultAbs>result){return -(result+1);}return -result;}return Math.round(interPerid / oneDay);}/*** 增加日期的秒钟。失败返回null。** @param date         日期字符串* @param secondAmount 增加数量。可为负数* @return 增加秒钟后的日期字符串*/public static String addSecond(String date, int secondAmount) {return addInteger(date, Calendar.SECOND, secondAmount);}/*** 增加日期中某类型的某数值。如增加日期** @param date     日期字符串* @param dateType 类型* @param amount   数值* @return 计算后日期字符串*/private static String addInteger(String date, int dateType, int amount) {Date myDate = toDate(parse(date));myDate = addInteger(myDate, dateType, amount);String dateString = format(myDate, FORMAT_DATETIME);return dateString;}/*** 增加日期中某类型的某数值。如增加日期** @param date     日期* @param dateType 类型* @param amount   数值* @return 计算后日期*/private static Date addInteger(Date date, int dateType, int amount) {Date myDate = null;if (date != null) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(dateType, amount);myDate = calendar.getTime();}return myDate;}public static Long getIntervalDays(String startDateStr, String endDateStr) {Date startDate = parse(startDateStr, FORMAT_DATETIME);Date endDate = parse(endDateStr, FORMAT_DATETIME);if (null == startDate || null == endDate) {return 0L;}Double result = getIntervalDays(startDate, endDate);return Long.valueOf(result.longValue());}/*** 获取date之前past日的日期* @param date* @param past* @return*/public static Date getPastDate(Date date, int past) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - past);return calendar.getTime();}/*** 获取date之后的第past天的日期* @param date* @param future* @return*/public static Date getFutureDate(Date date, int future) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + future);return calendar.getTime();}/***将 localtime 转成date* @param localdatetime* @return*/public static Date LocalDateTimeToDate(LocalDateTime  localdatetime) {ZoneId zoneId = ZoneId.systemDefault();ZonedDateTime zdt =  localdatetime.atZone(zoneId);return Date.from(zdt.toInstant());}/*** 获取系统时间,格式 yyyy-MM-dd** @return*/public static String getNowDateToYYYYMMDD() {SimpleDateFormat df = new SimpleDateFormat(format1);return df.format(new Date());}/***jdk8版本中进行俩个时间节点的相差天数*   与今天日期对比* @return*/public static Integer getPeriodDays(String  oneDateStr) {LocalDate   startLocalDate = LocalDate.parse(oneDateStr, DateUtil.FORMATTERS_1);LocalDate   todayLocalDate = LocalDate.now();Long  diffDays=Duration.between(startLocalDate.atStartOfDay(),todayLocalDate.atStartOfDay()).toDays();return diffDays.intValue() ;}public static void main(String[] args) {
//        String startDateStr = "2020-07-30 00:00:00";String startDateStr = "2020-08-14 00:00:00";String endDateSTr = "2020-08-06 16:44:00";System.out.println(getIntervalDays(startDateStr, endDateSTr));System.out.println("距离今天"+getPeriodDays("2020-09-02"));//8}
}运算结果展示:
-8
距离今天0

 

这篇关于【java工具类-时间与日期】获取俩个日期的相差天数日期格式化日期类型转换Date转化为JDK的LocalDate 格式的日期工具类处理日期类型与字符串互转计算俩个日期时分秒的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1045890

相关文章

揭秘未来艺术:AI绘画工具全面介绍

📑前言 随着科技的飞速发展,人工智能(AI)已经逐渐渗透到我们生活的方方面面。在艺术创作领域,AI技术同样展现出了其独特的魅力。今天,我们就来一起探索这个神秘而引人入胜的领域,深入了解AI绘画工具的奥秘及其为艺术创作带来的革命性变革。 一、AI绘画工具的崛起 1.1 颠覆传统绘画模式 在过去,绘画是艺术家们通过手中的画笔,蘸取颜料,在画布上自由挥洒的创造性过程。然而,随着AI绘画工

Java五子棋之坐标校正

上篇针对了Java项目中的解构思维,在这篇内容中我们不妨从整体项目中拆解拿出一个非常重要的五子棋逻辑实现:坐标校正,我们如何使漫无目的鼠标点击变得有序化和可控化呢? 目录 一、从鼠标监听到获取坐标 1.MouseListener和MouseAdapter 2.mousePressed方法 二、坐标校正的具体实现方法 1.关于fillOval方法 2.坐标获取 3.坐标转换 4.坐

墨刀原型工具-小白入门篇

墨刀原型工具-小白入门篇 简介 随着互联网的发展和用户体验的重要性越来越受到重视,原型设计逐渐成为了产品设计中的重要环节。墨刀作为一款原型设计工具,以其简洁、易用的特点,受到了很多设计师的喜爱。本文将介绍墨刀原型工具的基本使用方法,以帮助小白快速上手。 第一章:认识墨刀原型工具 1.1 什么是墨刀原型工具 墨刀是一款基于Web的原型设计工具,可以帮助设计师快速创建交互原型,并且可以与团队

Spring Cloud:构建分布式系统的利器

引言 在当今的云计算和微服务架构时代,构建高效、可靠的分布式系统成为软件开发的重要任务。Spring Cloud 提供了一套完整的解决方案,帮助开发者快速构建分布式系统中的一些常见模式(例如配置管理、服务发现、断路器等)。本文将探讨 Spring Cloud 的定义、核心组件、应用场景以及未来的发展趋势。 什么是 Spring Cloud Spring Cloud 是一个基于 Spring

计算绕原点旋转某角度后的点的坐标

问题: A点(x, y)按顺时针旋转 theta 角度后点的坐标为A1点(x1,y1)  ,求x1 y1坐标用(x,y)和 theta 来表示 方法一: 设 OA 向量和x轴的角度为 alpha , 那么顺时针转过 theta后 ,OA1 向量和x轴的角度为 (alpha - theta) 。 使用圆的参数方程来表示点坐标。A的坐标可以表示为: \[\left\{ {\begin{ar

hevc和H.264格式的区别

HEVC(High Efficiency Video Coding)和H.264(也称为Advanced Video Coding,AVC)都是视频压缩标准,但它们之间存在一些显著的区别,主要集中在压缩效率、资源需求和兼容性方面。 压缩效率 HEVC,也被称为H.265,提供了比H.264更高的压缩效率。这意味着在相同的视频质量下,HEVC能够以大约一半的比特率进行编码,从而减少存储空间需求和

Javascript高级程序设计(第四版)--学习记录之变量、内存

原始值与引用值 原始值:简单的数据即基础数据类型,按值访问。 引用值:由多个值构成的对象即复杂数据类型,按引用访问。 动态属性 对于引用值而言,可以随时添加、修改和删除其属性和方法。 let person = new Object();person.name = 'Jason';person.age = 42;console.log(person.name,person.age);//'J

java8的新特性之一(Java Lambda表达式)

1:Java8的新特性 Lambda 表达式: 允许以更简洁的方式表示匿名函数(或称为闭包)。可以将Lambda表达式作为参数传递给方法或赋值给函数式接口类型的变量。 Stream API: 提供了一种处理集合数据的流式处理方式,支持函数式编程风格。 允许以声明性方式处理数据集合(如List、Set等)。提供了一系列操作,如map、filter、reduce等,以支持复杂的查询和转

大学湖北中医药大学法医学试题及答案,分享几个实用搜题和学习工具 #微信#学习方法#职场发展

今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语音听题、本地搜题、顺序阅读、模拟考试、组卷考试、赶快下载吧! 2.彩虹搜题 这是个老公众号了 支持手写输入,截图搜题,详细步骤,解题必备

Java面试八股之怎么通过Java程序判断JVM是32位还是64位

怎么通过Java程序判断JVM是32位还是64位 可以通过Java程序内部检查系统属性来判断当前运行的JVM是32位还是64位。以下是一个简单的方法: public class JvmBitCheck {public static void main(String[] args) {String arch = System.getProperty("os.arch");String dataM