文章目录


前言

最近一直在用时间戳,记录下相关方法;


一、字符串转时间戳

/**
* 西五区 短时间转为Date
* @param dateStr 2022-02-16
* @return Long
*/
public static Long parseShortStringDateWestFive(String dateStr){
try {
SimpleDateFormat dateFormatShort = new SimpleDateFormat("yyyy-MM-dd");
dateFormatShort.setTimeZone(TimeZone.getTimeZone("GMT-5:00"));
return dateFormatShort.parse(dateStr).getTime();
} catch (ParseException e) {
LOGGER.error("parseShortStringDateWestFive is fail", e);
}
return null;
}

二、获取某个时区零点时间戳

代码如下(示例):

/**
* 根据时区获取当前月初零点时间戳
* @param timeZone
* @return
*/
public static long getMonthZeroTimeStamp(String timeZone){
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone(timeZone));
// 日
calendar.set(Calendar.DAY_OF_MONTH, 1);
// 时
calendar.set(Calendar.HOUR_OF_DAY, 0);
// 分
calendar.set(Calendar.MINUTE, 0);
// 秒
calendar.set(Calendar.SECOND, 0);
// 毫秒
calendar.set(Calendar.MILLISECOND, 0);
return calendar.getTimeInMillis();
}
// 调用
getMonthZeroTimeStamp("GMT-5:00");

三、 时间戳相差几天

代码如下(示例):

// 获取西五区 时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("GMT-5:00"));
Date date = new Date();
String stringDate = sdf.format(date);
Date cur = sdf.parse(stringDate);
day = (cur.getTime() - orderEntity.getAddTime()) / (24 * 60 * 60 * 1000);

---