文章目录
前言
与时间有关的操作,字符串与日期的相关转换,时间的偏移量等等。
提示:以下是本篇文章正文内容,下面案例可供参考
一、字符串与日期互转
1.返回系统当前时间(精确到毫秒),作为一个唯一的编号
/**
* yyyyMMddHHmmss
*/
public static final String DATE_FORMAT_NOSPLIT = "yyyyMMddHHmmss";
/**
* 返回系统当前时间(精确到毫秒),作为一个唯一的编号,并发量不高可以使用
*
* @return 以yyyyMMddHHmmss为格式的当前系统时间
*/
public static String getOrderNum() {
Date date = new Date();
DateFormat df = new SimpleDateFormat(DATE_FORMAT_NOSPLIT);
return df.format(date);
}
2.将秒数改为xx天xx小时xx分xx秒
/**
* 将秒数改为 xx天xx小时xx分xx秒
* 如 formatTime(60) --> 1分
* 如 formatTime(70) --> 1分10秒
* 类推
*/
public static String formatTime(Long t) {
return isEmpty(t) ? "" : formatTime(t.intValue(), false);
}
public static String formatTime(int t) {
return isEmpty(t) ? "" : formatTime(t, false);
}
public static String formatTime(int t, boolean isShowEmpty) {
int[] s = {60, 60, 24, 365, 1000000};
String[] ss = {"秒", "分", "小时", "天", "年"};
String r = "";
for (int i = 0; i < s.length; i++) {
r = (t % s[i] == 0 && !isShowEmpty) ? r : t % s[i] + ss[i] + r;
t = (t / s[i]);
if (t == 0) { break; }
}
return r;
}
public static boolean isEmpty(Object obj) {
return obj == null;
}
3.将Date转换成字符串
// 默认日期格式:yyyy-MM-dd HH:mm:ss
public static final String DATE_FORMAT_COMMON = "yyyy-MM-dd HH:mm:ss";
/**
* 将Date转换成字符串
*
* @param date Date 要转换的Date实例
* @param format String 日期格式字符串
* @return String
*/
public static String date2String(Date date, String format) {
if (date == null) {
return "";
}
SimpleDateFormat sdf = null;
try {
sdf = new SimpleDateFormat(format);
} catch (Exception e) {
sdf = new SimpleDateFormat(DATE_FORMAT_COMMON);
log.debug("====DateUtils.date2String(" + date + "," + format);
}
return sdf.format(date);
}
/**
* 将Date类转换成字符串形式,使用默认的格式做转换. yyyy年MM月dd日 HH:mm:ss
*
* @param date Date
* @return String
*/
public static String date2String(Date date) {
return date2String(date, DATE_FORMAT_COMMON);
}
4.将Date转换成字符串(年、月、日)
// yyyy
public static final String DATE_FORMAT_YEAR = "yyyy";
// yyyy-MM
public static final String DATE_FORMAT_MONTH = "yyyy-MM";
// yyyy-MM-dd
public static final String DATE_FORMAT_DAY = "yyyy-MM-dd";
// 将Date转换成字符串(天),return调用的是3中的方法
public static String date2StringDay(Date date) {
return date2String(date, DATE_FORMAT_DAY);
}
// 将Date转换成字符串(月)
public static String date2StringMonth(Date date) {
return date2String(date, DATE_FORMAT_MONTH);
}
// 将Date转换成字符串(年)
public static String date2StringYear(Date date) {
return date2String(date, DATE_FORMAT_YEAR);
}
5.得到字符串形式的当前时间
/**
* 得到字符串形式的当前时间,日期格式采用默认的格式.
*
* @return String
*/
public static String getCurrentDate() {
Date date = new Date();
return date2String(date, DATE_FORMAT_COMMON);
}
/**
* 得到字符串形式的当前时间
* @param dateFormat 要返回的格式
* @return String
*/
public static String getCurrentDate(String dateFormat) {
Date date = new Date();
return date2String(date, dateFormat);
}
6.将字符串格式的日期转换成日期
/**
* 将字符串格式的日期转换成日期,格式yyyy-MM-DD
*
* @param date String
* @return Date
*/
public static Date string2Date(String date) {
return string2Date(date, DATE_FORMAT_COMMON);
}
public static Date string2Date(String date, String dateFormat) {
if (Utils.isEmpty(date)) {
return null;
}
try {
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
long time = sdf.parse(date).getTime();
return new Date(time);
} catch (Exception e) {
log.error("unsupported date format : " + date);
log.error(e.getMessage(), e);
return null;
}
}
// 国际化时间
public static Date string2DateI18n(String date, String dateFormat, Locale locale) {
if (Utils.isEmpty(date))
return null;
try {
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, locale);
long time = sdf.parse(date).getTime();
return new Date(time);
} catch (Exception e) {
log.error("unsupported date format : " + date);
throw new ParamException("时间格式不正确:" + date + ",正确格式:" + dateFormat);
}
}
二、日期偏移计算
本部分内容为:传入日期得到其偏移秒数、偏移分钟、偏移小时、偏移天、偏移周、偏移月、偏移年、当月最后一天、当前时间前一天、得到当前时间开始时间与结束时间等等与之相关的操作,后续待补充。。。
总结
你会有你的卑微 ,但你也有属于你的骄傲,用你自己的自信去诠释属于你的骄傲。