Java日期时间格式化操作DateUtils 的整理

直接上代码,总结了开发过程中经常用到的日期时间格式化操作!
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.concurrent.TimeUnit;
/**
* ClassName: DateUtils <br/>
* Description:时间操作工具类
*/
public class DateUtils {
private static final String[] UNIT_DESC = new String[]{"天", "小时", "分钟", "秒"};
/**
* 获得当前系统时间,格式为yyyyMMdd
*
* @return 格式化后的时间
*/
public static String currentYYYYMMDD() {
return getStrByDate(new Date(), "yyyyMMdd");
}
/**
* 获得当前系统时间,格式为HHmmss
*
* @return 格式化后的时间
*/
public static String currentHHMMSS() {
return getStrByDate(new Date(), "HHmmss");
}
/**
* 获得当前系统时间,格式为yyyyMMddHHmmss
*
* @return 格式化后的时间
*/
public static String currentYYYYMMDDHHmmss() {
return getStrByDate(new Date(), "yyyyMMddHHmmss");
}
/**
* 根据给定的字符串如:yyyy-MM-dd HH:mm:ss,(必须是这种格式) 返回一个日期日期形式
*
* @param strDate 要抛析的字符串,且字符串的形式必须:2007-09-10 07:00:00
* @return 将字符串抛析成日期的格式返回
* @throws ParseException 解析 format 字段失败
*/
public static java.util.Date getDateByStr(String strDate, String format) throws ParseException {
assert strDate != null && format != null;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
return simpleDateFormat.parse(strDate);
}
/**
* 根据给定的日期,返回给定的字符串, 返回 字符串的形式是:yyyy-MM-dd HH:mm:ss
*
* @param date 要格式化的日期
* @return 将日期格式化后返回的字符串,以这中格式返回:yyyy-MM-dd HH:mm:ss
*/
public static String getStrByDate(Date date, String format) {
assert date != null && format != null;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
return simpleDateFormat.format(date);
}
/**
* 得到当前时间
*
* @return 当前时间
*/
public static Date getDayOfMonth() {
Calendar now = Calendar.getInstance();
return now.getTime();
}
/**
* 得到每月第一天
*
* @param date 日期
* @return 日期月份的第一天
*/
public static Date getFirstDayOfMonth(Date date) {
Calendar nowday = Calendar.getInstance();
nowday.setTime(date);
nowday.set(Calendar.DATE, 1);// 把日期设置为当月第一天
return nowday.getTime();
}
/**
* 得到每月最后一天
*
* @param date 日期
* @return 日期月份最后一天
*/
public static Date getLastDayOfMonth(Date date) {
Calendar nowday = Calendar.getInstance();
nowday.setTime(date);
nowday.set(Calendar.DATE, 1);// 把日期设置为当月第一天
nowday.roll(Calendar.DATE, -1);// 日期回滚一天,也就是最后一天
return nowday.getTime();
}
/**
* 获取当前年份 格式:yyyy
*
* @param date 当前时间
* @return year
*/
public static String getCurrYear(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");
Date currYear = calendar.getTime();
return String.valueOf(dateFormat.format(currYear));
}
/**
* 获取当前月份 格式:MM
*
* @param date 当前时间
* @return Date
*/
public static String getCurrMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
SimpleDateFormat dateFormat = new SimpleDateFormat("MM");
Date currMonth = calendar.getTime();
return String.valueOf(dateFormat.format(currMonth));
}
/**
* 得到此日期的最后一天
*
* @param d 日期
* @return 最后一天
*/
public static Date getLastDayByDate(Date d) {
Calendar newday = Calendar.getInstance();
newday.setTime(d);
int lastday;
int month = newday.get(Calendar.MONTH);
do {
lastday = newday.get(Calendar.DAY_OF_MONTH);
newday.add(Calendar.DAY_OF_MONTH, 1);
} while (newday.get(Calendar.MONTH) == month);
newday.set(Calendar.MONTH, month);
newday.set(Calendar.DAY_OF_MONTH, lastday);
return newday.getTime();
}
/**
* 将 yyyyMMdd 的字符窜 转化成 yyyy-MM-dd
*
* @param dateString yyyyMMdd格式的日期
* @return yyyy-MM-dd格式的日期
* @throws ParseException
*/
public static String formatyyyyMMdd(String dateString) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
Date date = simpleDateFormat.parse(dateString);
SimpleDateFormat formatStr = new SimpleDateFormat("yyyy-MM-dd");
return formatStr.format(date);
}
/**
* 将 yyyyMMdd 的字符窜 转化成 yyyy-MM-dd HH:mm:ss
*
* @param dateString
* @return
* @throws ParseException
*/
public static String formatyyyyMMddHHmmss(String dateString) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Date date = simpleDateFormat.parse(dateString);
SimpleDateFormat formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return formatStr.format(date);
}
/**
* 获取当前年份 格式:yyyy
*
* @return Date
*/
public static int getCurrYear() {
Calendar calendar = Calendar.getInstance();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");
Date currYearFirst = calendar.getTime();
return Integer.valueOf(dateFormat.format(currYearFirst));
}
/**
* 获取当前时间前三月
*
* @return Date
*/
public static Date getLastThreeMonths() {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, -3);
calendar.add(Calendar.DAY_OF_MONTH, 1);
return calendar.getTime();
}
/**
* 获取当前时间前一个月
*
* @return Date
*/
public static Date getLastOneMonths() {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, -1);
calendar.add(Calendar.DAY_OF_MONTH, 1);
return calendar.getTime();
}
/**
* 获取当前时间前六个月
*
* @return Date
*/
public static Date getLastSixMonths() {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, -6);
calendar.add(Calendar.DAY_OF_MONTH, 1);
return calendar.getTime();
}
/**
* 获取某年第一天日期
*
* @param year 年份
* @return Date
*/
public static Date getCurrYearFirst(int year) {
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR, year);
return calendar.getTime();
}
/**
* 获取某年最后一天日期
*
* @param year 年份
* @return Date
*/
public static Date getCurrYearLast(int year) {
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR, year);
calendar.roll(Calendar.DAY_OF_YEAR, -1);
return calendar.getTime();
}
/**
* 格式化时间
*
* @param date 时间
* @param format 格式化模板
* @return 格式化后的时间
*/
public static String date2Str(Date date, String format) {
return getStrByDate(date, format);
}
/**
* 获得指定日期的前一天 yyyy-MM-dd
* @param date
* @return
*/
public static String getSpecifiedDayBefore(Date date, String dateFormat){
if (date == null) return null;
Calendar c = Calendar.getInstance();
c.setTime(date);
int day=c.get(Calendar.DATE);
c.set(Calendar.DATE,day-1);
String dayBefore=new SimpleDateFormat(dateFormat).format(c.getTime());
return dayBefore;
}
/**
* 获得指定日期的后一天 yyyy-MM-dd
*
* @param date
* @return
*/
public static String getSpecifiedDayAfter(Date date, String dateFormat) {
if (date == null) return null;
Calendar c = Calendar.getInstance();
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day + 1);
String dayAfter = new SimpleDateFormat(dateFormat).format(c.getTime());
return dayAfter;
}
/**
* 格式化持续时间<br/>
* 将持续时间,格式化为 xx天xx小时xx分钟xx秒 如果 "xx" 为0 自动缺省。
*
* @param seconds 持续时间,单位(秒)
* @return 格式化后的字符串
* @see TimeUnit 时间单位转换工具
* @since 1.5
*/
public static String convertSeconds2Str(long seconds) {
StringBuilder sb = new StringBuilder();
long[] date = {TimeUnit.SECONDS.toDays(seconds), TimeUnit.SECONDS.toHours(seconds) % 24, TimeUnit.SECONDS.toMinutes(seconds) % 60, TimeUnit.SECONDS.toSeconds(seconds) % 60};
for (int i = 0; i < date.length; i++) {
long l = date[i];
if (l > 0) sb.append(l).append(UNIT_DESC[i]);
}
return sb.toString();
}
/**
* 格式化持续时间
* 将持续时间,格式化为 xx天xx小时xx分钟xx秒 如果 "xx" 为0 自动缺省。
*
* @param seconds 持续时间,单位(分钟)
* @return 格式化后的字符串
* @see TimeUnit 时间单位转换工具
* @since 1.5
*/
public static String convertMinute2Str(long minute) {
StringBuilder sb = new StringBuilder();
long[] date = {TimeUnit.SECONDS.toHours(minute) % 24,TimeUnit.SECONDS.toMinutes(minute) % 60, TimeUnit.SECONDS.toSeconds(minute) % 60};
for (int i = 0; i < date.length; i++) {
long l = date[i];
if (l > 0) sb.append(l).append(UNIT_DESC[i]);
}
return sb.toString();
}
}
以上就是关于java 日期格式化操作的所有内容,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关文章:
如何破解联通资金短缺导致的基站建设难题?
如何在阿里云虚拟主机上快速搭建个人网站?
如何通过FTP空间快速搭建安全高效网站?
如何快速查询网站的真实建站时间?
如何通过商城自助建站源码实现零基础高效建站?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
如何高效利用亚马逊云主机搭建企业网站?
高端企业智能建站程序:SEO优化与响应式模板定制开发
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
开心动漫网站制作软件下载,十分开心动画为何停播?
网站制作费用多少钱,一个网站的运营,需要哪些费用?
建站之星如何一键生成手机站?
Swift中swift中的switch 语句
在线教育网站制作平台,山西立德教育官网?
如何选择PHP开源工具快速搭建网站?
如何通过虚拟主机快速完成网站搭建?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
建站VPS能否同时实现高效与安全翻墙?
如何在建站主机中优化服务器配置?
如何在腾讯云免费申请建站?
Python文件管理规范_工程实践说明【指导】
如何在阿里云部署织梦网站?
网站制作壁纸教程视频,电脑壁纸网站?
网站制作企业,网站的banner和导航栏是指什么?
官网网站制作腾讯审核要多久,联想路由器newifi官网
黑客如何利用漏洞与弱口令入侵网站服务器?
如何通过FTP服务器快速搭建网站?
如何用西部建站助手快速创建专业网站?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
如何在服务器上三步完成建站并提升流量?
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
广州营销型建站服务商推荐:技术优势与SEO优化解析
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
香港服务器部署网站为何提示未备案?
如何在景安服务器上快速搭建个人网站?
建站之星在线客服如何快速接入解答?
建站之星代理如何优化在线客服效率?
如何快速搭建高效可靠的建站解决方案?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
定制建站模板如何实现SEO优化与智能系统配置?18字教程
建站ABC备案流程中有哪些关键注意事项?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
宝塔面板如何快速创建新站点?
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
红河网站制作公司,红河事业单位身份证如何上传?
建站之星伪静态规则如何正确配置?
如何快速生成可下载的建站源码工具?
如何快速上传建站程序避免常见错误?
企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?
*请认真填写需求信息,我们会在24小时内与您取得联系。