用途:一些与时间相关的处理
功能:
1.获取当前时间 格式---->2019-08-04 13:30:29:getNowTime
2.将一个日期字符串转换成Data对象 string–>date:stringToDate
3将date转换成字符串 date—>string:dateToString
4.获取指定日期 ,返回值为: “周日”, “周一”, “周二”, “周三”, “周四”, “周五”, “周六”:getWeekOfDate
5.获取指定日期对应周几的序列:getIndexWeekOfDate
6.获取当前月份:getNowMonth
7.获取当前月号:getNowDay
8.获取当前年份:getNowYear
9.获取本月份的天数:getNowDaysOfMonth
10.获取指定月份的天数:daysOfMonth
11.计算两个日期之间的年份差距:getYearGapOfDates
12:计算两个日期之间的月份差距:getMonthGapOfDates
13.计算两个日期之间的天数差:getDaysGapOfDates

public class DateUtils {public static final long ONE_DAY_MILLS = 3600000 * 24;private DateUtils() {}/*** 日期格式     enum(枚举类型):一组类似的值包含到一种类型当中。而这种枚举类型的名称则会被定义成独一无二的类型描述符 -->为申明的变量提供更大的取值范围*/public enum DateFormat {/*** 格式:"yyyy-MM-dd HH:mm:ss"*/ALL_TIME {public String getValue() {return "yyyy-MM-dd HH:mm:ss";}},/*** 格式:"yyyy-MM-dd HH:mm"*/ONLY_MINUTE {public String getValue() {return "yyyy-MM-dd HH:mm";}},/*** 格式:"yyyy-MM-dd HH"*/ONLY_HOUR {public String getValue() {return "yyyy-MM-dd HH";}},/*** 格式:"yyyy-MM-dd"*/ONLY_DAY {public String getValue() {return "yyyy-MM-dd";}},/*** 格式:"yyyy-MM"*/ONLY_MONTH {public String getValue() {return "yyyy-MM";}},/*** 格式:"MM-dd"*/ONLY_MONTH_DAY {public String getValue() {return "MM-dd";}},/*** 格式:"MM-dd HH:mm"*/ONLY_MONTH_SEC {public String getValue() {return "MM-dd HH:mm";}},/*** 格式:"HH:mm:ss"*/ONLY_TIME {public String getValue() {return "HH:mm:ss";}},/*** 格式:"HH:mm"*/ONLY_HOUR_MINUTE {public String getValue() {return "HH:mm";}};public abstract String getValue();}/*** 获取当前时间  格式---->2019-08-04    13:30:29*/public static String getNowTime(DateFormat format) {String nowtime = null;Calendar calendar = Calendar.getInstance();Date dateNow = calendar.getTime();SimpleDateFormat sdf = new SimpleDateFormat(format.getValue(), Locale.CHINA);nowtime = sdf.format(dateNow);return nowtime;}/*** 将一个日期字符串转换成Data对象         string-->date** @param dateString 日期字符串* @param format     转换格式* @return*/public static Date stringToDate(String dateString, DateFormat format) {Date date = null;SimpleDateFormat sdf = new SimpleDateFormat(format.getValue(), Locale.CHINA);try {date = sdf.parse(dateString);} catch (ParseException e) {e.printStackTrace();}return date;}/*** 将date转换成字符串               date--->string** @param date   日期* @param format 日期目标格式* @return*/public static String dateToString(Date date, DateFormat format) {String string = "";SimpleDateFormat sdf = new SimpleDateFormat(format.getValue(), Locale.CHINA);string = sdf.format(date);return string;}/*** 获取指定日期** @param date 指定日期* @return 返回值为: "周日", "周一", "周二", "周三", "周四", "周五", "周六"*/public static String getWeekOfDate(Date date) {String[] weekDays = {"周日", "周一", "周二", "周三", "周四", "周五", "周六"};Calendar calendar = Calendar.getInstance();calendar.setTime(date);int week = calendar.get(Calendar.DAY_OF_WEEK) - 1;if (week < 0)week = 0;return weekDays[week];}/*** 获取指定日期对应周几的序列** @param date 指定日期* @return 周一:1    周二:2    周三:3    周四:4    周五:5    周六:6    周日:7*/public static int getIndexWeekOfDate(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);int index = calendar.get(Calendar.DAY_OF_WEEK);if (index == 1) {return 7;} else {return --index;}}/*** 获取当前月份*/public static int getNowMonth() {Calendar calendar = Calendar.getInstance();return calendar.get(Calendar.MONTH) + 1;}/*** 获取当前月号*/public static int getNowDay() {Calendar calendar = Calendar.getInstance();return calendar.get(Calendar.DATE);}/*** 获取当前年份*/public static int getNowYear() {Calendar calendar = Calendar.getInstance();return calendar.get(Calendar.YEAR);}/*** 获取本月份的天数*/public static int getNowDaysOfMonth() {Calendar calendar = Calendar.getInstance();return daysOfMonth(calendar.get(Calendar.YEAR), calendar.get(Calendar.DATE) + 1);}/*** 计算两个日期之间的年份差距** @param firstDate* @param secondDate* @return*/public static int getYearGapOfDates(Date firstDate, Date secondDate) {if (firstDate == null || secondDate == null) {return 0;}Calendar helpCalendar = Calendar.getInstance();helpCalendar.setTime(firstDate);int firstYear = helpCalendar.get(Calendar.YEAR);helpCalendar.setTime(secondDate);int secondYear = helpCalendar.get(Calendar.YEAR);return secondYear - firstYear;}/*** 计算两个日期之间的天数差** @param startDate* @param endDate* @return*/public static int getDaysGapOfDates(Date startDate, Date endDate) {int date = 0;if (startDate != null && endDate != null) {date = getDaysBetween(startDate, endDate);}return date;}/*** 计算两个日期之间的月份差距** @param firstDate* @param secondDate* @return*/public static int getMonthGapOfDates(Date firstDate, Date secondDate) {if (firstDate == null || secondDate == null) {return 0;}return (int) ((secondDate.getTime() - firstDate.getTime())/ ONE_DAY_MILLS / 30);}/*** 获取指定月份的天数** @param year  年份* @param month 月份* @return 对应天数*/public static int daysOfMonth(int year, int month) {switch (month) {case 1:case 3:case 5:case 7:case 8:case 10:case 12:return 31;case 4:case 6:case 9:case 11:return 30;case 2:if ((year % 4 == 0 && year % 100 == 0) || year % 400 != 0) {return 29;} else {return 28;}default:return -1;}}private static int getDaysBetween(Date startDate, Date endDate) {return (int) ((endDate.getTime() - startDate.getTime()) / ONE_DAY_MILLS);}
}

DateUtils(一个日期工具类)相关推荐

  1. java中常用的日期工具类

    java中常用的日期工具类 日期相关的类: package net.yto.ofclacct.core.util;import java.text.ParseException; import jav ...

  2. java dateutils_Java中简单日期工具类DateUtils的实现

    最近工作时经常处理日期,想起以前sql server中datediff,dateadd 等方法非常好用,于是想在java中实现类以的功能,而且提高精度,所以初步有了以下代码: package com. ...

  3. java 星期几、得周一、得周日、上周、下周、相差、日期工具类

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. import org.apache.commons.lang3.StringUtils;import ...

  4. java日期工具类DateUtil

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. DateUtil类 [java] view plain copy package com.util; ...

  5. 自定义日期工具类 java 1614698552

    自定义日期工具类 java 1614698552 需求 思路 演练 日期转字符串的方法 字符串转日期方法 测试类 更多尝试 测试另一个方法

  6. 天干地支 工具类java_java日期工具类DateUtil-续二

    该版本是一次较大的升级,农历相比公历复杂太多(真佩服古人的智慧),虽然有规律,但涉及到的取舍.近似的感念太多,况且本身的概念就已经很多了,我在网上也是查阅了很多的资料,虽然找到一些计算的方法,但都有些 ...

  7. Date日期工具类和Calendar日历类实例及其相互转换

    (一)日期工具类 该类的构造函数如下:   (1)Date(): 分配对象并对其进行初始化,以便它表示分配对象的时间,以最接近的毫秒为单位.   (2)Date(long date): 分配一个对象并 ...

  8. java日期工具类(转载)

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...

  9. 基于ThreadLocal的日期工具类

    有时候我们会使用到JDK java.text.*下的SimpleDateFormat类来对我们的日期与字符串进行格式化得转换,此时我们很容易想到,要基于SimpleDateFormat封装成一个工具类 ...

  10. java中定义一个CloneUtil 工具类

    其实所有的java对象都可以具备克隆能力,只是因为在基础类Object中被设定成了一个保留方法(protected),要想真正拥有克隆的能力, 就需要实现Cloneable接口,重写clone方法.通 ...

最新文章

  1. 【组合数学】生成函数 ( 生成函数示例 | 给定通项公式求生成函数 | 给定生成函数求通项公式 )
  2. freamarker 模板中空格_高端商务公司介绍PPT模板
  3. 源码 反码 补码详解(为什么计算机存储数值为补码形式?)
  4. 数据库:MySQL、HBase、ElasticSearch三者对比
  5. k8s容器灰度发布最佳实践(基于spinnaker)
  6. Java开发中,接口参数校验
  7. 字符串拆分成泛型列表
  8. 如何成为一名机器学习算法工程师?
  9. 简述计算机键盘上shift键的作用,shift键的作用是什么
  10. Python爬虫常用库requests、beautifulsoup、selenium、xpath总结
  11. php outexcel,PHP Spreadsheet_Excel_Writer setStrikeOut()用法及代码示例
  12. webscraper多页爬取_Web Scraper 翻页——抓取「滚动加载」类型网页(Web Scraper 高级用法)| 简易数据分析 10...
  13. 技术使用总结-旷视人脸识别-(APP中H5接入)
  14. OSChina 周二乱弹 ——快晒晒你们公司的圣诞小姐姐啊!
  15. Vue项目中使用海康安全生产平台播放监控视频
  16. 医院信息系统网络安全等级保护2.0标准解读
  17. python双星号是什么意思_Python字典前双星号(**)的作用
  18. PCM 单双声道转换
  19. 林萧谈如何进入BAT
  20. 利用永恒之蓝渗透WIN7

热门文章

  1. Linux Keepalived 高可用虚拟IP安装与配置
  2. VS2015之博大精深的MFC项目开发(一)
  3. mysql与linux版本区别_MySQL各版本的区别
  4. MPLS OPTION-B
  5. [计算机网络][内容梳理]四、网络层
  6. skycut刻字机软件控制选择
  7. c语言游戏计算器代码,C语言计算器代码.doc
  8. VMD如何确定分解层数(一):最优变分模态分解(OVMD)---VMD分解的基础上确定分解层数和更新步长
  9. 360录屏时去掉跑马灯解决方法 以失败告终
  10. wpe修改充值_WPE修改基础第四课:封包分析教程