Java线程安全的日期格式化工具类
来源:互联网 发布:互质的性质 知乎 编辑:程序博客网 时间:2024/05/19 17:04
/** * 日期格式化辅助类 * * @author hkb <br> */public final class DateUtil { /** 线程安全的日期格式对象 */ private static final ThreadLocal<DateFormat> DATE_FORMAT = new ThreadLocal<DateFormat>() { @Override protected DateFormat initialValue() { // 完整日期 return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); } }; /** 线程安全的日期格式对象 */ private static final ThreadLocal<DateFormat> YMD = new ThreadLocal<DateFormat>() { @Override protected DateFormat initialValue() { // 年月日 return new SimpleDateFormat("yyyy-MM-dd"); } }; /** * 格式化完整日期 * * @param date * @return yyyy-MM-dd HH:mm:ss格式的字符串 */ public static final String formatDate(Date date) { return DATE_FORMAT.get().format(date); } /** * 格式化年月日 * * @param date * @return yyyy-MM-dd格式的字符串 */ public static final String formatYMD(Date date) { return YMD.get().format(date); } /** * 获取指定日期0点的字符串 * * @param date * @return 返回示例:2017-12-23 00:00:00 */ public static final String getZeroPointStr(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); return formatDate(calendar.getTime()); } /** * 获取指定日期末点的字符串 * * @param date * @return 返回示例:2017-12-23 23:59:59 */ public static final String getLastPointStr(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.HOUR_OF_DAY, 23); calendar.set(Calendar.MINUTE, 59); calendar.set(Calendar.SECOND, 59); calendar.set(Calendar.MILLISECOND, 999); return formatDate(calendar.getTime()); } /** * 获取指定日期的0点的毫秒数 * * @param date * @return */ public static final long getZeroPointMillisecond(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); return calendar.getTime().getTime(); } /** * 获取指定日期的末点的毫秒数 * * @param date * @return */ public static final long getLastPointMillisecond(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.HOUR_OF_DAY, 23); calendar.set(Calendar.MINUTE, 59); calendar.set(Calendar.SECOND, 59); calendar.set(Calendar.MILLISECOND, 999); return calendar.getTime().getTime(); } /** * 测试 * * @param args */ public static void main(String[] args) { Date now = new Date(); System.out.println(formatDate(now)); System.out.println(formatYMD(now)); System.out.println(getZeroPointStr(now)); System.out.println(getLastPointStr(now)); System.out.println(getZeroPointMillisecond(now)); System.out.println(getLastPointMillisecond(now)); }}
阅读全文
0 0
- Java线程安全的日期格式化工具类
- Java日期格式化-线程安全
- java日期格式化工具类
- java日期格式化工具。
- java日期格式化工具类【包含常用的日期格式化方法】
- 日期格式化工具类
- 日期格式化工具类
- 日期格式化工具类
- java 的日期格式化类
- Java日期计算类(线程安全)
- 常用的日期格式化工具类
- JAVA日期格式化工具【L】
- java 各种日期格式化工具
- Java静态工具类线程安全的一些建议
- java的日期格式化
- Java的日期格式化
- java HashMap 线程安全 工具类
- 日期格式化工具类DateFormat
- 魔方阵
- 如何在科技论文中使用时态
- Lintcode 15. 全排列
- 硬币的兑换
- centos6.4 做nat出现tcp二次握手无法正常转译返回问题(icmp,udp可以正常通信)。求解
- Java线程安全的日期格式化工具类
- Intellij IDEA使用(十一)—— 使用Intellij IDEA创建Spring+SpringMVC+Mybatis(SSM)整合项目
- SQL分页加载数据
- 循环链表 c语言小试牛刀
- 设计模式
- hdu 2045 java 大数
- 统计思维(实例7)——估计
- C Primer Plus 精读(一)
- 数据结构实验之查找七:线性之哈希表