Java实现的日期处理类完整实例
时间:2019-04-06
本文章向大家介绍Java实现的日期处理类完整实例,主要包括Java实现的日期处理类完整实例使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文实例讲述了Java实现的日期处理类。分享给大家供大家参考,具体如下:
开发中常常要使用日期,先小结如下,以备后用。
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class FormatTime { private final static SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd"); private final static SimpleDateFormat sdfymdhm = new SimpleDateFormat("yyyyMMddHHmmss"); private final static SimpleDateFormat sdfymdhms = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); /** * * @Title: getCurrentDay * @Description: TODO 获取当天时间(20161109) * @return */ public static String getCurrentDay(){ return sdf.format(new Date()); } /** * * @Title: fTime2 * @Description: TODO 获取time这个日期以前dayAgo天的日期 * @return */ public static String fTime(String time,int dayAgo){ Date date = null; try { date = sdf.parse(time); } catch (ParseException e) { throw new RuntimeException(e); } Calendar calendar = Calendar.getInstance(); calendar.setTime(date); if(dayAgo>0){ calendar.add(Calendar.DAY_OF_MONTH, -dayAgo);//前15天数据 date = calendar.getTime(); calendar.setTime(date); } int year=calendar.get(Calendar.YEAR); int month=calendar.get(Calendar.MONTH) + 1; int day = calendar.get(Calendar.DAY_OF_MONTH); String mon=""; String d=""; if(month<10){ mon="0"+month; }else{ mon=month+""; } if(day<10){ d="0"+day; }else{ d=""+day; } String ret=year+""+mon+""+d; return ret; } /** * * @Title: fTime2 * @Description: TODO 获取time这个日期以后dayAfter天的日期 * @return */ public static String fTime2(String time,int dayAfter){ Date date = null; try { date = sdf.parse(time); } catch (ParseException e) { throw new RuntimeException(e); } Calendar calendar = Calendar.getInstance(); calendar.setTime(date); if(dayAfter>0){ calendar.add(Calendar.DAY_OF_MONTH, +dayAfter);//后15天数据 date = calendar.getTime(); calendar.setTime(date); } int year=calendar.get(Calendar.YEAR); int month=calendar.get(Calendar.MONTH) + 1; int day = calendar.get(Calendar.DAY_OF_MONTH); String mon=""; String d=""; if(month<10){ mon="0"+month; }else{ mon=month+""; } if(day<10){ d="0"+day; }else{ d=""+day; } String ret=year+""+mon+""+d; return ret; } /** * * @Title: getDefaultTime * @Description: TODO 获取昨天的日期 * @return */ public static String getDefaultTime(){ Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_MONTH, -1);//前1天 Date date = calendar.getTime(); String time=sdf.format(date); return time; } /** * * @Title: getSunday * @Description: TODO 获取最近一个星期天 * @return */ public static String getSunday(){ SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd"); Calendar c = Calendar.getInstance(); c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); return f.format(c.getTime()); } /** * * @Title: getMonthFirstDay * @Description: TODO 获取本月第一天 * @return */ public static String getCurrentMonthFirstDay(){ Calendar cal_1=Calendar.getInstance();//获取当前日期 cal_1.add(Calendar.MONTH, 0); cal_1.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天 String firstDay = sdf.format(cal_1.getTime()); return firstDay; } /** * * @Title: getMonthFirstDay * @Description: TODO 获取上月第一天 * @return */ public static String getPreviousMonthFirstDay(){ //获取当前月第一天: Calendar c = Calendar.getInstance(); c.add(Calendar.MONTH, -1); c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天 String first = sdf.format(c.getTime()); return first; } /** * * @Title: getMonthFirstDay * @Description: TODO 获取上月最后一天 * @return */ public static String getPreviousMonthLastDay(){ //获取当前月最后一天 Calendar ca = Calendar.getInstance(); ca.set(Calendar.DAY_OF_MONTH,0);// String lastDay = sdf.format(ca.getTime()); return lastDay; } /** * * @Title: getCurrentMonthLastDay * @Description: TODO 获取指定时间最后一天 * @return */ public static String getCurrentMonthLastDay(String time){ Date date =null; try { date= sdf.parse(time); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } //获取当前月最后一天 Calendar ca = Calendar.getInstance(); ca.setTime(date); ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); // String lastDay = sdf.format(ca.getTime()); return lastDay; } /*** * * @Title: getCurrentWeekDay * @Description: TODO 获取本周周一 */ public static String getCurrentMonday(){ Calendar cal = Calendar.getInstance(); cal.setFirstDayOfWeek(Calendar.MONDAY);//将每周第一天设为星期一,默认是星期天 cal.add(Calendar.DATE, 0); cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY); String monday = sdf.format(cal.getTime()); return monday; } /*** * * @Title: getPreviousSunday * @Description: TODO 获取上周周日 */ public static String getPreviousSunday(){ Calendar cal = Calendar.getInstance(); cal.setFirstDayOfWeek(Calendar.MONDAY);//将每周第一天设为星期一,默认是星期天 cal.add(Calendar.DATE, -1*7); cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); String sunday =sdf.format(cal.getTime()); return sunday; } /** * * @Title: getMiniSencond * @Description: TODO 将日期转换为毫秒数 * @param str * @return */ public static String getMiniSencond(String str){ long millionSeconds=0; try { millionSeconds = sdfymdhm.parse(str).getTime();//毫秒 } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return millionSeconds+""; } /** * * @Title: getDateSencond * @Description: TODO 将日期转换为毫秒数 * @param str * @return */ public static long getDateSencond(String str){ long millionSeconds=0; try { millionSeconds = sdfymdhms.parse(str).getTime();//毫秒 } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return millionSeconds; } /** * 计算日期相差天数 * @param str1 * @param str2 * @return */ public static int getDistanceOfTwoDate(String str1,String str2){ int result=0; try{ Date date1 = sdf.parse(str1); Date date2 =sdf.parse(str2); Calendar aCalendar = Calendar.getInstance(); aCalendar.setTime(date1); int day1 = aCalendar.get(Calendar.DAY_OF_YEAR); aCalendar.setTime(date2); int day2 = aCalendar.get(Calendar.DAY_OF_YEAR); result = day1-day2; }catch(Exception e){ e.printStackTrace(); } return result; } /** * * @Title: long2Date * @Description: TODO long 转日期(年-月-日 时-分-秒) * @param timestamp * @return */ public static String longToDate(Long msecond){ Date date = new Date(msecond); return sdfymdhms.format(date); } }
PS:这里再为大家推荐几款关于日期与天数计算的在线工具供大家使用:
在线日期/天数计算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi
在线万年历日历:
http://tools.jb51.net/bianmin/wannianli
在线阴历/阳历转换工具:
http://tools.jb51.net/bianmin/yinli2yangli
更多关于java相关内容感兴趣的读者可查看本站专题:《java日期与时间操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
- JDK容器学习之Queue: PriorityQueue
- React Native导航器之react-navigation使用
- Nginx 路由转发配置笔记
- React Native控件之ListView
- Java学习之深拷贝浅拷贝及对象拷贝的两种方式
- [周末课程]什么是“页面业务流程”分析思维导图?如何编写页面假JSON数据? &下一个前端组件“日历”
- Java并发学习之玩转线程池
- Java & PhantomJs 实现html输出图片
- 干货 | React Native实践之携程Moles框架
- Java并发学习之ThreadLocal使用及原理介绍
- ibeacon蓝牙技术简介
- Java并发学习之定时任务的几种玩法
- [视频直播]本周日先行者视频“React多级菜单
- Java并发学习之线程状态及Thread常用方法详解
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- mac快捷键
- 浅谈Kotlin的Checked Exception机制
- 自研网关:特殊URL功能的开发
- centos7多网卡配置
- vuecli3 build之后静态文件出现404
- Muti-Similarity Loss:考虑了batch中整体距离分布的对比损失函数
- AkShare-中国宏观-社会消费品零售总额
- AkShare-中国宏观-存款准备金率
- AkShare-中国宏观-消费者信心指数
- AkShare-期货数据-COMEX库存数据
- ESP8266和ESP32配置(需使用ROS1和ROS2)
- SpringBoot+Gradle+ MyBatisPlus3.x搭建企业级的后台分离框架
- frp 内网穿透远程桌面(Windows 10)配置
- 你来讲讲AQS是什么吧?都是怎么用的?
- Angular单元测试里pipe的mock设计