天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
最近开发一些跟时间相关的业务功能接口,总结了一下时间相关的转换内容。
String pattern = "yyyy-MM-dd hh:mm:ss"
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
String timeStr = sdf.format(date);
String pattern = "yyyy-MM-dd hh:mm:ss";
String dateStr = "2023-07-11 16:18:30";
Date date = new SimpleDateFormat(pattern).parse(pattern);
直接调用.getTime()函数获取毫秒值
Date date = new Date();
long dateTime = date.getTime();
使用日历类进行转换传参后调用函数获取毫秒值,以2023年7月11日为例,传入年月日三个参数
int y = 2023;
int m = 7;
int d = 11;
Calendar c = Calendar.getInstance();
c.set(y,m,d);
Date date = c.getTime();
long dateTime = date.getTime();
使用日历类进行转换传参后调用函数获取毫秒值,以2023年7月11日16时10分30秒为例,传入年月日时分秒六个参数
int y = 2023;
int m = 7;
int d = 11;
int h = 16;
int mm = 10;
int s = 30;
Canlendar c = Calendar.getInstance();
c.set(y,m,d,h,mm,s);
Date date = c.getTime();
long dateTime = date.getTime();
使用Date的setTime()函数进行毫秒值转Date,以2023年7月12日8时49分30秒为例,其毫秒值为1689122970562
long ms = 1689122970562;
Date date = new Date();
date.setTime(ms);
即将字符串时间转为Date类型再由Date类型转为ms毫秒值,以字符串时间"2023-07-11 16:16:20"为例,转为毫秒值
String pattern = "yyyy-MM-dd hh:mm:ss";
String dateStr = "2023-07-11 16:16:20";
DateFormat df = new SimpleDateFormat(pattern);
Date date = df.parse(dateStr);
long dateTime = date.getTime();
package com.data.utils;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* @Description: 时间工具
* @Version 1.0
* @Author 李白
* @Date 2023/7/11 星期二 16:25
*/
public class TimeTools {
/**-------------------------字符串时间与Date类型转换-------------------------**/
/**
* 字符串时间转Date类型
* @param timeStr 时间字符串
* @return
*/
public static Date String2Date(String timeStr){
Date date;
try {
//默认转换前的字符串格式如下 年月日空格分秒: 2023-07-05 12:30:25
date = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(timeStr);
} catch (ParseException e) {
throw new RuntimeException(e);
}
return date;
}
/**
* 字符串时间转Date类型,指定输入的字符串时间格式
* @param timeStr
* @param timePattern 按照传入的规则输入时间字符串
* @return
*/
public static Date String2Date(String timeStr, String timePattern){
Date date;
try {
date = new SimpleDateFormat(timePattern).parse(timeStr);
} catch (ParseException e) {
throw new RuntimeException(e);
}
return date;
}
/**
* Date转字符串
* @param date 日期
* @return
*/
public static String Date2String(Date date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String timeStr = sdf.format(date);
return timeStr;
}
/**
* Date转字符串(指定格式)
* @param date 日期
* @param pattern 日期格式 yyyy-MM-dd hh:mm:ss
* @return
*/
public static String Date2String(Date date, String pattern){
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
String timeStr = sdf.format(date);
return timeStr;
}
/**-------------------------Date日期与毫秒值ms的转换-------------------------**/
/**
* 毫秒值转为对应的日期
* @param ms 时间毫秒值
* @return
*/
public static Date ms2Date(long ms){
// Date date = new Date(ms);
Date date = new Date();
date.setTime(ms);
System.out.println(date);
return date;
}
/**
* 日期转毫秒值
* @param date
* @return
*/
public static long date2Ms(Date date){
long dateTime = date.getTime();
System.out.println(dateTime);
return dateTime;
}
/**
* 指定日期转为毫秒值
* @param y 年
* @param m 月
* @param d 日
* @return
*/
public static long date2Ms(int y,int m, int d){
Calendar calendar = Calendar.getInstance();
calendar.set(y,m,d);
Date date = calendar.getTime();
long dateTime = date.getTime();
System.out.println(dateTime);
return dateTime;
}
/**
* 指定日期转为毫秒值
* @param y 年
* @param m 月
* @param d 日
* @param h 时
* @param mm 分
* @param s 秒
* @return
*/
public static long date2Ms(int y,int m, int d, int h, int mm, int s){
Calendar calendar = Calendar.getInstance();
calendar.set(y,m,d,h,mm,s);
Date date = calendar.getTime();
long dateTime = date.getTime();
System.out.println(dateTime);
return dateTime;
}
/**
* 指定日期字符串转为毫秒值
* @param dateStr 指定格式输入日期字符串 如 2023-07-07 08:20:38
* @return
* @throws ParseException
*/
public static long date2Ms(String dateStr) throws ParseException {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = df.parse(dateStr);
long dateTime = date.getTime();
System.out.println(dateTime);
return dateTime;
}
/**
* 指定日期字符串转为毫秒值
* @param dateStr 指定格式输入日期字符串 如 2023-07-07 08:20:38
* @param timePattern 字符串日期格式 如 yyyy-MM-dd hh:mm:ss
* @return
* @throws ParseException
*/
public static long date2Ms(String dateStr, String timePattern) throws ParseException {
DateFormat df = new SimpleDateFormat(timePattern);
Date date = df.parse(dateStr);
long dateTime = date.getTime();
System.out.println(dateTime);
return dateTime;
}
}