package com.example.springbootghw.util;
import lombok.extern.slf4j.Slf4j;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import static com.fasterxml.jackson.databind.util.ISO8601Utils.format;
@Slf4j
public class DateFormat {
/**
* 英文简写(默认)如:2010-12-01
*/
public static String FORMAT_SHORT = "yyyy-MM-dd";
/**
* 英文全称 如:2010-12-01 23:15:06
*/
public static String FORMAT_LONG = "yyyy-MM-dd HH:mm:ss";
/**
* 精确到毫秒的完整时间 如:yyyy-MM-dd HH:mm:ss.S
*/
public static String FORMAT_FULL = "yyyy-MM-dd HH:mm:ss.S";
/**
* 中文简写 如:2010年12月01日
*/
public static String FORMAT_SHORT_CN = "yyyy年MM月dd";
/**
* 中文全称 如:2010年12月01日 23时15分06秒
*/
public static String FORMAT_LONG_CN = "yyyy年MM月dd日 HH时mm分ss秒";
/**
* 精确到毫秒的完整中文时间
*/
public static String FORMAT_FULL_CN = "yyyy年MM月dd日 HH时mm分ss秒SSS毫秒";
// public static void main(String[] args) {
// System.out.println(getTimeString());
// System.out.println("返回日期年份:"+getYear(new Date()));
// System.out.println("返回月份:"+getMonth(new Date()));
// System.out.println("返回当天日份"+getDay(new Date()));
// System.out.println("返回当天小时"+getHour(new Date()));
// System.out.println("返回当天分"+getMinute(new Date()));
// System.out.println("返回当天秒"+getSecond(new Date()));
// System.out.println("返回当天毫秒"+getMillis(new Date()));
//
// }
//字符串转化成对应的日期格式,字符串格式为yyyy-MM-dd HH:mm:ss
public java.util.Date stringToDate(String source){
SimpleDateFormat formatter = new SimpleDateFormat(FORMAT_LONG);
try {
java.util.Date date = formatter.parse(source);
return date;
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
//时间戳转换为日期格式
public java.util.Date timeToDate(long source){
Date date = new Date(source);
return date;
}
//计算两个日期的时间差值,返回单位分钟
public long duration(java.util.Date source1, java.util.Date source2){
long time1 = source1.getTime();
long time2 = source2.getTime();
long diff = Math.abs(time1-time2)/1000/60;
return diff;
}
//日期增加amount天
public java.util.Date addDay(java.util.Date source, int amount){
Calendar calendar = new GregorianCalendar();
calendar.setTime(source);
calendar.add(calendar.DATE,amount);//把日期往后增加amount天.整数往后推,负数往前移动
java.util.Date dest =calendar.getTime();
return dest;
}
//把日期往后增加amount时.整数往后推,负数往前移动
public java.util.Date addHour(java.util.Date source, int amount){
Calendar calendar = new GregorianCalendar();
calendar.setTime(source);
calendar.add(calendar.HOUR,amount);
java.util.Date dest =calendar.getTime();
return dest;
}
//日期增加amount秒
public java.util.Date addSecond(java.util.Date source, int amount){
Calendar calendar = new GregorianCalendar();
calendar.setTime(source);
calendar.add(calendar.SECOND,amount);//把日期往后增加amount天.整数往后推,负数往前移动
java.util.Date dest =calendar.getTime();
return dest;
}
/**
*@param
*@return 返回当前周一的日期对应的字符串 如:2019-07-08
*/
public String firstDayOfWeek(){
SimpleDateFormat simdf = new SimpleDateFormat(FORMAT_SHORT);
Calendar cal = Calendar.getInstance();
System.out.println("现在时间:"+simdf.format(cal.getTime()));
cal.set(cal.DAY_OF_WEEK, cal.MONDAY);
String firstDay = simdf.format(cal.getTime());
log.info("当前时间所在周周一日期:"+firstDay);
return firstDay;
}
/**
* 日期格式字符串转换成时间戳
* @param timeStamp 时间戳 单位秒
* @param format 如:yyyy-MM-dd HH:mm:ss
* @return
*/
public String timeToString(long timeStamp,String format){
SimpleDateFormat df = new SimpleDateFormat(format);
return df.format(timeStamp*1000);
}
/**
* 获取当前时间
*/
public static String getTimeString(String format) {
SimpleDateFormat df = new SimpleDateFormat(format);
Calendar calendar = Calendar.getInstance();
return df.format(calendar.getTime());
}
/**
* 获取日期年份
* @param date 日期
* @return
*/
public static String getYear(Date date) {
return format(date).substring(0, 4);
}
/**
* 功能描述:返回月
*
* @param date
* Date 日期
* @return 返回月份
*/
public static int getMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.MONTH) + 1;
}
/**
* 功能描述:返回日期
*
* @param date
* Date 日期
* @return 返回日份
*/
public static int getDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.DAY_OF_MONTH);
}
/**
* 功能描述:返回小时
*
* @param date
* 日期
* @return 返回小时
*/
public static int getHour(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.HOUR_OF_DAY);
}
/**
* 功能描述:返回分
*
* @param date
* 日期
* @return 返回分钟
*/
public static int getMinute(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.MINUTE);
}
/**
* 返回秒钟
*
* @param date
* Date 日期
* @return 返回秒钟
*/
public static int getSecond(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.SECOND);
}
/**
* 功能描述:返回毫
*
* @param date
* 日期
* @return 返回毫
*/
public static long getMillis(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.getTimeInMillis();
}
}
java 自定义日期类留着备用
最新推荐文章于 2022-11-01 23:04:48 发布
该博客展示了一个Java日期处理工具类,定义了多种日期格式常量,包含字符串转日期、时间戳转日期、计算日期差值、日期增减等方法,还能获取当前周一日期、将时间戳转为字符串,以及获取日期各部分信息。
739

被折叠的 条评论
为什么被折叠?



