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设置一个固定的时间 java自定义时间
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java声明一个固定时间的Date类型 java定义时间
Date类 Date类代表当前所在系统的日期时间信息 Date的构造器 public Date() //创建一个Date对象,代表的是系统当前此刻日期与时间
java声明一个固定时间的Date类型 java jvm servlet System