Java DateUtils:常用日期时间格式化操作详解

0 下载量 197 浏览量 更新于2024-09-01 收藏 52KB PDF 举报
"Java日期时间格式化操作DateUtils的整理是关于Java编程中处理日期和时间的重要实践,该主题主要关注如何使用Java中的DateUtils类进行日期格式化。DateUtils是一个实用工具类,用于简化在开发过程中频繁遇到的日期时间操作,如获取当前系统时间和转换日期字符串。 首先,我们了解几个核心方法: 1. `currentYYYYMMDD()`:这个方法返回当前系统的日期,格式化为"yyyyMMdd",即年月日的四位数字形式。 2. `currentHHMMSS()`:此方法提供当前时间的格式化结果,包括小时、分钟和秒,即"HHmmss",24小时制。 3. `currentYYYYMMDDHHmmss()`:结合了年月日和小时分钟秒,返回完整的日期时间格式"yyyyMMddHHmmss"。 4. `getStrByDate(Date date, String format)`:这是一个通用的方法,它接受一个`Date`对象和一个格式字符串`format`,如"yyyy-MM-dd HH:mm:ss",用于将日期解析为指定格式的字符串。如果输入的字符串不符合这个格式,将会抛出`ParseException`异常。 在实际开发中,对日期时间的格式化和解析是非常常见的需求,尤其是在处理用户输入、数据库交互或者进行时间计算时。`DateUtils`类提供了一种简洁的方式来处理这些任务,减少了手动编写繁琐的`SimpleDateFormat`实例化和转换代码的工作量。 通过使用`DateUtils`,开发者可以快速地将日期时间转换为适合展示或存储的形式,同时也能确保在不同场景下的兼容性。例如,当需要与数据库接口保持一致的日期格式时,或者在不同国家和地区的用户界面中呈现统一的时间显示,这个工具类就能发挥重要作用。 学习和掌握Java日期时间格式化操作DateUtils的使用,有助于提升代码的可读性和维护性,尤其是在处理日期相关的业务逻辑时。对于Java开发者来说,这是提高工作效率和质量的关键技能之一。"
2013-06-30 上传
package com.bdvcd.utils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; /** * 文件名:DateUtils.java 日期处理相关工具类 * 版本信息:V1.0 * 日期:2013-03-11 * Copyright BDVCD Corporation 2013 * 版权所有 http://www.bdvcd.com */ public class DateUtils { /**定义常量**/ public static final String DATE_JFP_STR="yyyyMM"; public static final String DATE_FULL_STR = "yyyy-MM-dd HH:mm:ss"; public static final String DATE_SMALL_STR = "yyyy-MM-dd"; public static final String DATE_KEY_STR = "yyMMddHHmmss"; /** * 使用预设格式提取字符串日期 * @param strDate 日期字符串 * @return */ public static Date parse(String strDate) { return parse(strDate,DATE_FULL_STR); } /** * 使用用户格式提取字符串日期 * @param strDate 日期字符串 * @param pattern 日期格式 * @return */ public static Date parse(String strDate, String pattern) { SimpleDateFormat df = new SimpleDateFormat(pattern); try { return df.parse(strDate); } catch (ParseException e) { e.printStackTrace(); return null; } } /** * 两个时间比较 * @param date * @return */ public static int compareDateWithNow(Date date1){ Date date2 = new Date(); int rnum =date1.compareTo(date2); return rnum; } /** * 两个时间比较(时间戳比较) * @param date * @return */ public static int compareDateWithNow(long date1){ long date2 = dateToUnixTimestamp(); if(date1>date2){ return 1; }else if(date1<date2){ return -1; }else{ return 0; } } /** * 获取系统当前时间 * @return */ public static String getNowTime() { SimpleDateFormat df = new SimpleDateFormat(DATE_FULL_STR); return df.format(new Date()); } /** * 获取系统当前时间 * @return */ public static String getNowTime(String type) { SimpleDateFormat df = new SimpleDateFormat(type); return df.format(new Date()); } /** * 获取系统当前计费期 * @return */ public static String getJFPTime() { SimpleDateFormat df = new SimpleDateFormat(DATE_JFP_STR); return df.format(new Date()); } /** * 将指定的日期转换成Unix时间戳 * @param String date 需要转换的日期 yyyy-MM-dd HH:mm:ss * @return long 时间戳 */ public static long dateToUnixTimestamp(String date) { long timestamp = 0; try { timestamp = new SimpleDateFormat(DATE_FULL_STR).parse(date).getTime(); } catch (ParseException e) { e.printStackTrace(); } return timestamp; } /** * 将指定的日期转换成Unix时间戳 * @param String date 需要转换的日期 yyyy-MM-dd * @return long 时间戳 */ public static long dateToUnixTimestamp(String date, String dateFormat) { long timestamp = 0; try { timestamp = new SimpleDateFormat(dateFormat).parse(date).getTime(); } catch (ParseException e) { e.printStackTrace(); } return timestamp; } /** * 将当前日期转换成Unix时间戳 * @return long 时间戳 */ public static long dateToUnixTimestamp() { long timestamp = new Date().getTime(); return timestamp; } /** * 将Unix时间戳转换成日期 * @param long timestamp 时间戳 * @return String 日期字符串 */ public static String unixTimestampToDate(long timestamp) { SimpleDateFormat sd = new SimpleDateFormat(DATE_FULL_STR); sd.setTimeZone(TimeZone.getTimeZone("GMT+8")); return sd.format(new Date(timestamp)); } }