java 时间转换工具_java日期时间转换工具类

这个Java类库提供了一系列静态方法,用于日期时间的格式化、转换和计算,包括获取当前时间戳、日期字符串的格式化与解析、日期的加减操作以及获取日期的各种组件(如年、月、日、时、分、秒)。此外,还包含了一些随机数生成和账号流水号生成的功能。

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.regex.Pattern;

/**

* 日期时间转换工具类

*/

public class DateUtil {

public static String FILE_NAME =

"MMddHHmmssSSS";

public static String DEFAULT_PATTERN =

"yyyy-MM-dd";

public static String DIR_PATTERN =

"yyyy/MM/dd/";

public static String TIMESTAMP_PATTERN =

"yyyy-MM-dd HH:mm:ss";

public static String TIMES_PATTERN =

"HH:mm:ss";

public static String NOCHAR_PATTERN =

"yyyyMMddHHmmss";

/**

* 获取当前时间戳

*

* @param date

*

* @return

*/

public static String formatDefaultFileName() {

return formatDateByFormat(new Date(), FILE_NAME);

}

/**

* 日期转换为字符串

*

* @param date

* 日期

* @param format

* 日期格式

* @return 指定格式的日期字符串

*/

public static String formatDateByFormat(Date date, String format) {

String result = "";

if (date != null) {

try {

SimpleDateFormat sdf = new SimpleDateFormat(format);

result = sdf.format(date);

} catch (Exception ex) {

ex.printStackTrace();

}

}

return result;

}

/**

* 转换为默认格式(yyyy-MM-dd)的日期字符串

*

* @param date

*

* @return

*/

public static String formatDefaultDate(Date date) {

return formatDateByFormat(date, DEFAULT_PATTERN);

}

/**

* 转换为目录格式(yyyy/MM/dd/)的日期字符串

*

* @param date

*

* @return

*/

public static String formatDirDate(Date date) {

return formatDateByFormat(date, DIR_PATTERN);

}

/**

* 转换为完整格式(yyyy-MM-dd HH:mm:ss)的日期字符串

*

* @param date

*

* @return

*/

public static String formatTimesTampDate(Date date) {

return formatDateByFormat(date, TIMESTAMP_PATTERN);

}

/**

* 转换为时分秒格式(HH:mm:ss)的日期字符串

*

* @param date

*

* @return

*/

public static String formatTimesDate(Date date) {

return formatDateByFormat(date, TIMES_PATTERN);

}

/**

* 转换为时分秒格式(HH:mm:ss)的日期字符串

*

* @param date

*

* @return

*/

public static String formatNoCharDate(Date date) {

return formatDateByFormat(date, NOCHAR_PATTERN);

}

/**

* 日期格式字符串转换为日期对象

*

* @param strDate

* 日期格式字符串

* @param pattern

* 日期对象

* @return

*/

public static Date parseDate(String strDate, String pattern) {

try {

SimpleDateFormat format = new SimpleDateFormat(pattern);

Date nowDate = format.parse(strDate);

return nowDate;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

/**

* 字符串转换为默认格式(yyyy-MM-dd)日期对象

*

* @param date

*

* @return

*

* @throws Exception

*/

public static Date parseDefaultDate(String date) {

return parseDate(date, DEFAULT_PATTERN);

}

/**

* 字符串转换为完整格式(yyyy-MM-dd HH:mm:ss)日期对象

*

* @param date

*

* @return

*

* @throws Exception

*/

public static Date parseTimesTampDate(String date) {

return parseDate(date, TIMESTAMP_PATTERN);

}

/**

* 获得当前时间

*

* @return

*/

public static Date getCurrentDate() {

Calendar calendar = Calendar.getInstance();

return calendar.getTime();

}

/**

* sql Date 转 util Date

*

* @param date

* java.sql.Date日期

* @return java.util.Date

*/

public static Date parseUtilDate(java.sql.Date date) {

return date;

}

/**

* util Date 转 sql Date

*

* @param date

* java.sql.Date日期

* @return

*/

public static java.sql.Date parseSqlDate(Date date) {

return new java.sql.Date(date.getTime());

}

/**

* 获取年份

*

* @param date

*

* @return

*/

public static int getYear(Date date) {

Calendar c = Calendar.getInstance();

c.setTime(date);

return c.get(Calendar.YEAR);

}

/**

* 获取月份

*

* @param date

*

* @return

*/

public static int getMonth(Date date) {

Calendar c = Calendar.getInstance();

c.setTime(date);

return c.get(Calendar.MONTH) + 1;

}

/**

* 获取星期

*

* @param date

*

* @return

*/

public static int getWeek(Date date) {

Calendar c = Calendar.getInstance();

c.setTime(date);

int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);

dayOfWeek = dayOfWeek - 1;

if (dayOfWeek == 0) {

dayOfWeek = 7;

}

return dayOfWeek;

}

/**

* 获取日期(多少号)

*

* @param date

*

* @return

*/

public static int getDay(Date date) {

Calendar c = Calendar.getInstance();

c.setTime(date);

return c.get(Calendar.DAY_OF_MONTH);

}

/**

* 获取当前时间(小时)

*

* @param date

*

* @return

*/

public static int getHour(Date date) {

Calendar c = Calendar.getInstance();

c.setTime(date);

return c.get(Calendar.HOUR_OF_DAY);

}

/**

* 获取当前时间(分)

*

* @param date

*

* @return

*/

public static int getMinute(Date date) {

Calendar c = Calendar.getInstance();

c.setTime(date);

return c.get(Calendar.MINUTE);

}

/**

* 获取当前时间(秒)

*

* @param date

*

* @return

*/

public static int getSecond(Date date) {

Calendar c = Calendar.getInstance();

c.setTime(date);

return c.get(Calendar.SECOND);

}

/**

* 获取当前毫秒

*

* @param date

*

* @return

*/

public static long getMillis(Date date) {

Calendar c = Calendar.getInstance();

c.setTime(date);

return c.getTimeInMillis();

}

/**

* 日期增加

*

* @param date

* Date

*

* @param day

* int

*

* @return Date

*/

public static Date addDate(Date date,

int day) {

java.util.Calendar c = java.util.Calendar.getInstance();

c.setTimeInMillis(getMillis(date) + ((long) day) *

24 * 3600 * 1000);

return c.getTime();

}

/**

* 日期相减(返回天数)

*

* @param date

* Date

*

* @param date1

* Date

*

* @return int 相差的天数

*/

public static int diffDate(Date date, Date date1) {

return (int) ((getMillis(date) - getMillis(date1)) / (24 *

3600 * 1000));

}

/**

* 日期相减(返回秒值)

*

* @param date

* Date

* @param date1

* Date

* @return int

* @author

*/

public static Long diffDateTime(Date date, Date date1) {

return (Long) ((getMillis(date) - getMillis(date1)) /

1000);

}

private static String[] randomValues =

new String[] { "0", "1", "2", "3",

"4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g",

"h", "i", "j", "k", "l", "m", "n", "u", "t", "s", "o", "x", "v",

"p", "q", "r", "w", "y", "z" };

public static String getRandomNumber(int lenght) {

StringBuffer str = new StringBuffer();

for (int i = 0; i < lenght; i++) {

Double number = Math.random() * (randomValues.length - 1);

str.append(randomValues[number.intValue()]);

}

return str.toString();

}

/**

* 生成账号

*

* @param acount

* @return

*/

public static String nextAcounnt(String acount) {

String newAcc = "";

if (Integer.parseInt(acount) < 10000) {

Integer newAc = Integer.parseInt(acount) + 1;

if (newAc < 1000) {

int count = String.valueOf(newAc).length();

if (count == 1) {

newAcc = "000" + newAc;

} else if (count ==

2) {

newAcc = "00" + newAc;

} else if (count ==

3) {

newAcc = "0" + newAc;

}

} else {

newAcc = String.valueOf(newAc);

}

} else {

newAcc = acount;

}

return newAcc;

}

public static boolean isNumeric1(String str) {

if (str != null && !"".equals(str) && str.length()<=9) {

Pattern pattern = Pattern.compile("[0-9]*");

return pattern.matcher(str).matches();

} else {

return false;

}

}

/**

* 生成流水号

*

* @param t

* 流水号位数

* @return 流水号

*/

public static String getSequenceNumber(int t) {

Date d = new Date();

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");

String str = sdf.format(d);

String haomiao = String.valueOf(System.nanoTime());

str = str + haomiao.substring(haomiao.length() - 6, haomiao.length());

return str.substring(str.length() - t, str.length());

}

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值