263 lines
6.5 KiB
Plaintext
263 lines
6.5 KiB
Plaintext
package com.nationalelectric.greenH5.utils;
|
||
|
||
import java.sql.Timestamp;
|
||
import java.text.DateFormat;
|
||
import java.text.ParseException;
|
||
import java.text.SimpleDateFormat;
|
||
import java.time.LocalDateTime;
|
||
import java.util.Calendar;
|
||
import java.util.Date;
|
||
import java.util.Locale;
|
||
|
||
public class DateTimeHelper {
|
||
|
||
|
||
public static String format(String timeLong, String defaut) {
|
||
try {
|
||
long tmpLong = Long.parseLong(timeLong);
|
||
Date d = new Date(tmpLong);
|
||
String timeStr = format(d, "yyyy-MM-dd HH:mm:ss");
|
||
return timeStr;
|
||
} catch (Exception e) {
|
||
return defaut;
|
||
}
|
||
}
|
||
|
||
public static String getNowDate() {
|
||
return format(new Date(), "yyyy-MM-dd HH:mm:ss");
|
||
}
|
||
|
||
public static String getNowDate1() {
|
||
return format(new Date(), "yyyy-MM-dd");
|
||
}
|
||
|
||
public static String getNowDate2() {
|
||
return format(new Date(), "yyyyMMdd");
|
||
}
|
||
|
||
public static String getNowDay() {
|
||
return format(new Date(), "yyyy-MM-dd");
|
||
}
|
||
|
||
public static String getNowDate3() {
|
||
return format(new Date(), "yyyy-MM-dd HH:mm:ss.SSSSSS");
|
||
}
|
||
|
||
public static void main(String[] args) {
|
||
|
||
}
|
||
|
||
/**
|
||
* 两个时间相差距离多少天多少小时多少分多少秒
|
||
*
|
||
* @param str1
|
||
* 时间参数 1 格式:2016-06-22 18:21:20
|
||
* @param str2
|
||
* 时间参数 2 格式:2016-06-22 17:21:20
|
||
* @return String 返回值为:xx天xx小时xx分xx秒
|
||
*/
|
||
public static String getDistanceTime(String str1, String str2) {
|
||
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||
Date one;
|
||
Date two;
|
||
long day = 0;
|
||
long hour = 0;
|
||
long min = 0;
|
||
long sec = 0;
|
||
long ms = 0;
|
||
try {
|
||
one = df.parse(str1);
|
||
two = df.parse(str2);
|
||
long time1 = one.getTime();
|
||
long time2 = two.getTime();
|
||
long diff;
|
||
if (time1 < time2) {
|
||
diff = time2 - time1;
|
||
} else {
|
||
diff = time1 - time2;
|
||
}
|
||
day = diff / (24 * 60 * 60 * 1000);
|
||
hour = (diff / (60 * 60 * 1000) - day * 24);
|
||
min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
|
||
sec = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
|
||
// ms = (diff - day * 24 * 60 * 60 * 1000 - hour * 60 * 60 * 1000 -
|
||
// min * 60 * 1000 - sec * 1000);
|
||
} catch (ParseException e) {
|
||
e.printStackTrace();
|
||
}
|
||
return hour + "小时" + min + "分" + sec + "秒";
|
||
}
|
||
|
||
/**
|
||
* smdate时间参数 String类型 YYYY-MM-dd bdate时间参数 String类型 YYYY-DD-dd
|
||
* return返回整形Int数字类型,例如:1 可用于计算两个日期的相差天数
|
||
*/
|
||
public static int daysBetween(String smdate, String bdate) throws ParseException {
|
||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||
Calendar cal = Calendar.getInstance();
|
||
cal.setTime(sdf.parse(smdate));
|
||
long time1 = cal.getTimeInMillis();
|
||
cal.setTime(sdf.parse(bdate));
|
||
long time2 = cal.getTimeInMillis();
|
||
long between_days = (time2 - time1) / (1000 * 3600 * 24);
|
||
return Integer.parseInt(String.valueOf(between_days));
|
||
}
|
||
|
||
/**
|
||
* 用于计算两个时间的大小,是否相等 beginTime参数:开始时间 endTime 参数:结束时间 开始时间 < 结束时间 :返回0 开始时间 >
|
||
* 结束时间 :返回1 开始时间 = 结束时间 :返回2
|
||
*/
|
||
public static int isDaySize(String beginTime, String endTime) throws ParseException {
|
||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||
Date bt = sdf.parse(beginTime);
|
||
Date et = sdf.parse(endTime);
|
||
if (!bt.before(et) && !bt.after(et)) {
|
||
return 2;
|
||
}
|
||
if (bt.before(et)) {
|
||
return 0;
|
||
} else {
|
||
return 1;
|
||
}
|
||
}
|
||
|
||
public static String getNowDateZH() {
|
||
return format(new Date(), "yyyy年MM月dd日");
|
||
}
|
||
|
||
public static String getNowDateHMS() {
|
||
return format(new Date(), "yyyyMMddHHmmss");
|
||
}
|
||
|
||
public static String getNowDateHM() {
|
||
return format(new Date(), "yyyyMMddHHmm");
|
||
}
|
||
|
||
public static String format(Date d, String f) {
|
||
SimpleDateFormat sdf = new SimpleDateFormat(f, Locale.US);
|
||
return sdf.format(d);
|
||
}
|
||
|
||
public static boolean isToday(String datetime) {
|
||
String todayStr = format(new Date(), "yyyy-MM-dd");
|
||
if (datetime.contains(todayStr)) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
public static String getNowDateyms() {
|
||
return format(new Date(), "yyyy-MM-dd HH:mm:ss");
|
||
}
|
||
|
||
/**
|
||
* 获取当前时间的天
|
||
*
|
||
* @return
|
||
*/
|
||
public static String getNowCurrentDay() {
|
||
return format(new Date(), "dd");
|
||
}
|
||
|
||
/**
|
||
* 获取当前时间的年份
|
||
*
|
||
* @return
|
||
*/
|
||
public static String getNowYear() {
|
||
return format(new Date(), "yyyy");
|
||
}
|
||
|
||
/**
|
||
* 获取当前时间的年月
|
||
*
|
||
* @return
|
||
*/
|
||
public static String getNowYearMonth() {
|
||
return format(new Date(), "yyyyMM");
|
||
}
|
||
|
||
/**
|
||
* 获取当前月份
|
||
*
|
||
* @return
|
||
*/
|
||
public static String getNowMonths() {
|
||
return format(new Date(), "MM");
|
||
}
|
||
|
||
/**
|
||
* 获取当前时间的日
|
||
*
|
||
* @return
|
||
*/
|
||
public static String getDay() {
|
||
return format(new Date(), "dd");
|
||
}
|
||
|
||
// 返回的是字符串型的时间,输入的
|
||
// 是String day, int x
|
||
public static String addDateMinut(String day, int x) {
|
||
|
||
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 24小时制
|
||
// 引号里面个格式也可以是 HH:mm:ss或者HH:mm等等,很随意的,不过在主函数调用时,要和输入的变
|
||
// 量day格式一致
|
||
Date date = null;
|
||
try {
|
||
date = format.parse(day);
|
||
} catch (Exception ex) {
|
||
ex.printStackTrace();
|
||
}
|
||
if (date == null)
|
||
return "";
|
||
System.out.println("front:" + format.format(date)); // 显示输入的日期
|
||
Calendar cal = Calendar.getInstance();
|
||
cal.setTime(date);
|
||
cal.add(Calendar.MINUTE, x);// 24小时制
|
||
date = cal.getTime();
|
||
System.out.println("after:" + format.format(date)); // 显示更新后的日期
|
||
cal = null;
|
||
return format.format(date);
|
||
}
|
||
|
||
/**
|
||
* 获取当前时间戳
|
||
*
|
||
* @return
|
||
*/
|
||
public static String getStamp() {
|
||
int temp = (int) (System.currentTimeMillis() / 1000);
|
||
return temp + "";
|
||
}
|
||
/**
|
||
* 获取本周为今年的第几周
|
||
*
|
||
* @return
|
||
*/
|
||
public static String getWeek(){
|
||
Calendar calendar = Calendar.getInstance();
|
||
return String.valueOf(calendar.get(Calendar.WEEK_OF_YEAR));
|
||
}
|
||
|
||
/**
|
||
* 日期解析为时间戳
|
||
*
|
||
* @param dateString
|
||
* @param format
|
||
* @return Long
|
||
* @description
|
||
* @author cwchen
|
||
* @date 2024/3/16 15:11
|
||
*/
|
||
public static Long convertDateStringToTimestamp(String dateString, String format){
|
||
Date date = null;
|
||
try {
|
||
SimpleDateFormat sdf = new SimpleDateFormat(format);
|
||
date = sdf.parse(dateString);
|
||
} catch (ParseException e) {
|
||
return null;
|
||
}
|
||
return date.getTime();
|
||
}
|
||
}
|