2019独角兽企业重金招聘Python工程师标准>>>

时间操作工具类

package org.jeecgframework.core.util;import java.beans.PropertyEditorSupport;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;import org.springframework.util.StringUtils;/*** * 类描述:时间操作定义类** @date: 日期:2012-12-8 时间:下午12:15:03* @version 1.0*/
public class DateUtils extends PropertyEditorSupport {// 各种时间格式public static final SimpleDateFormat date_sdf = new SimpleDateFormat("yyyy-MM-dd");// 各种时间格式public static final SimpleDateFormat yyyyMMdd = new SimpleDateFormat("yyyyMMdd");// 各种时间格式public static final SimpleDateFormat date_sdf_wz = new SimpleDateFormat("yyyy年MM月dd日");public static final SimpleDateFormat time_sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");public static final SimpleDateFormat yyyymmddhhmmss = new SimpleDateFormat("yyyyMMddHHmmss");public static final SimpleDateFormat short_time_sdf = new SimpleDateFormat("HH:mm");public static final  SimpleDateFormat datetimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 以毫秒表示的时间private static final long DAY_IN_MILLIS = 24 * 3600 * 1000;private static final long HOUR_IN_MILLIS = 3600 * 1000;private static final long MINUTE_IN_MILLIS = 60 * 1000;private static final long SECOND_IN_MILLIS = 1000;// 指定模式的时间格式private static SimpleDateFormat getSDFormat(String pattern) {return new SimpleDateFormat(pattern);}/*** 当前日历,这里用中国时间表示* * @return 以当地时区表示的系统当前日历*/public static Calendar getCalendar() {return Calendar.getInstance();}/*** 指定毫秒数表示的日历* * @param millis*            毫秒数* @return 指定毫秒数表示的日历*/public static Calendar getCalendar(long millis) {Calendar cal = Calendar.getInstance();// --------------------cal.setTimeInMillis(millis);cal.setTime(new Date(millis));return cal;}// // getDate// 各种方式获取的Date// /*** 当前日期* * @return 系统当前时间*/public static Date getDate() {return new Date();}/*** 指定毫秒数表示的日期* * @param millis*            毫秒数* @return 指定毫秒数表示的日期*/public static Date getDate(long millis) {return new Date(millis);}/*** 时间戳转换为字符串* * @param time* @return*/public static String timestamptoStr(Timestamp time) {Date date = null;if (null != time) {date = new Date(time.getTime());}return date2Str(date_sdf);}/*** 字符串转换时间戳* * @param str* @return*/public static Timestamp str2Timestamp(String str) {Date date = str2Date(str, date_sdf);return new Timestamp(date.getTime());}/*** 字符串转换成日期* @param str* @param sdf* @return*/public static Date str2Date(String str, SimpleDateFormat sdf) {if (null == str || "".equals(str)) {return null;}Date date = null;try {date = sdf.parse(str);return date;} catch (ParseException e) {e.printStackTrace();}return null;}/*** 日期转换为字符串* * @param date*            日期* @param format*            日期格式* @return 字符串*/public static String date2Str(SimpleDateFormat date_sdf) {Date date=getDate();if (null == date) {return null;}return date_sdf.format(date);}/*** 格式化时间* @param date* @param format* @return*/public static String dateformat(String date,String format){SimpleDateFormat sformat = new SimpleDateFormat(format);Date _date=null;try {_date=sformat.parse(date);} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}return sformat.format(_date);}/*** 日期转换为字符串* * @param date*            日期* @param format*            日期格式* @return 字符串*/public static String date2Str(Date date, SimpleDateFormat date_sdf) {if (null == date) {return null;}return date_sdf.format(date);}/*** 日期转换为字符串* * @param date*            日期* @param format*            日期格式* @return 字符串*/public static String getDate(String format) {Date date=new Date();if (null == date) {return null;}SimpleDateFormat sdf = new SimpleDateFormat(format);return sdf.format(date);}/*** 指定毫秒数的时间戳* * @param millis*            毫秒数* @return 指定毫秒数的时间戳*/public static Timestamp getTimestamp(long millis) {return new Timestamp(millis);}/*** 以字符形式表示的时间戳* * @param time*            毫秒数* @return 以字符形式表示的时间戳*/public static Timestamp getTimestamp(String time) {return new Timestamp(Long.parseLong(time));}/*** 系统当前的时间戳* * @return 系统当前的时间戳*/public static Timestamp getTimestamp() {return new Timestamp(new Date().getTime());}/*** 指定日期的时间戳* * @param date*            指定日期* @return 指定日期的时间戳*/public static Timestamp getTimestamp(Date date) {return new Timestamp(date.getTime());}/*** 指定日历的时间戳* * @param cal*            指定日历* @return 指定日历的时间戳*/public static Timestamp getCalendarTimestamp(Calendar cal) {// ---------------------return new Timestamp(cal.getTimeInMillis());return new Timestamp(cal.getTime().getTime());}public static Timestamp gettimestamp() {Date dt = new Date();DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String nowTime = df.format(dt);java.sql.Timestamp buydate = java.sql.Timestamp.valueOf(nowTime);return buydate;}// // getMillis// 各种方式获取的Millis// /*** 系统时间的毫秒数* * @return 系统时间的毫秒数*/public static long getMillis() {return new Date().getTime();}/*** 指定日历的毫秒数* * @param cal*            指定日历* @return 指定日历的毫秒数*/public static long getMillis(Calendar cal) {// --------------------return cal.getTimeInMillis();return cal.getTime().getTime();}/*** 指定日期的毫秒数* * @param date*            指定日期* @return 指定日期的毫秒数*/public static long getMillis(Date date) {return date.getTime();}/*** 指定时间戳的毫秒数* * @param ts*            指定时间戳* @return 指定时间戳的毫秒数*/public static long getMillis(Timestamp ts) {return ts.getTime();}// // formatDate// 将日期按照一定的格式转化为字符串// /*** 默认方式表示的系统当前日期,具体格式:年-月-日* * @return 默认日期按“年-月-日“格式显示*/public static String formatDate() {return date_sdf.format(getCalendar().getTime());}/*** 获取时间字符串*/public static String getDataString(SimpleDateFormat formatstr) {return formatstr.format(getCalendar().getTime());}/*** 指定日期的默认显示,具体格式:年-月-日* * @param cal*            指定的日期* @return 指定日期按“年-月-日“格式显示*/public static String formatDate(Calendar cal) {return date_sdf.format(cal.getTime());}/*** 指定日期的默认显示,具体格式:年-月-日* * @param date*            指定的日期* @return 指定日期按“年-月-日“格式显示*/public static String formatDate(Date date) {return date_sdf.format(date);}/*** 指定毫秒数表示日期的默认显示,具体格式:年-月-日* * @param millis*            指定的毫秒数* @return 指定毫秒数表示日期按“年-月-日“格式显示*/public static String formatDate(long millis) {return date_sdf.format(new Date(millis));}/*** 默认日期按指定格式显示* * @param pattern*            指定的格式* @return 默认日期按指定格式显示*/public static String formatDate(String pattern) {return getSDFormat(pattern).format(getCalendar().getTime());}/*** 指定日期按指定格式显示* * @param cal*            指定的日期* @param pattern*            指定的格式* @return 指定日期按指定格式显示*/public static String formatDate(Calendar cal, String pattern) {return getSDFormat(pattern).format(cal.getTime());}/*** 指定日期按指定格式显示* * @param date*            指定的日期* @param pattern*            指定的格式* @return 指定日期按指定格式显示*/public static String formatDate(Date date, String pattern) {return getSDFormat(pattern).format(date);}// // formatTime// 将日期按照一定的格式转化为字符串// /*** 默认方式表示的系统当前日期,具体格式:年-月-日 时:分* * @return 默认日期按“年-月-日 时:分“格式显示*/public static String formatTime() {return time_sdf.format(getCalendar().getTime());}/*** 指定毫秒数表示日期的默认显示,具体格式:年-月-日 时:分* * @param millis*            指定的毫秒数* @return 指定毫秒数表示日期按“年-月-日 时:分“格式显示*/public static String formatTime(long millis) {return time_sdf.format(new Date(millis));}/*** 指定日期的默认显示,具体格式:年-月-日 时:分* * @param cal*            指定的日期* @return 指定日期按“年-月-日 时:分“格式显示*/public static String formatTime(Calendar cal) {return time_sdf.format(cal.getTime());}/*** 指定日期的默认显示,具体格式:年-月-日 时:分* * @param date*            指定的日期* @return 指定日期按“年-月-日 时:分“格式显示*/public static String formatTime(Date date) {return time_sdf.format(date);}// // formatShortTime// 将日期按照一定的格式转化为字符串// /*** 默认方式表示的系统当前日期,具体格式:时:分* * @return 默认日期按“时:分“格式显示*/public static String formatShortTime() {return short_time_sdf.format(getCalendar().getTime());}/*** 指定毫秒数表示日期的默认显示,具体格式:时:分* * @param millis*            指定的毫秒数* @return 指定毫秒数表示日期按“时:分“格式显示*/public static String formatShortTime(long millis) {return short_time_sdf.format(new Date(millis));}/*** 指定日期的默认显示,具体格式:时:分* * @param cal*            指定的日期* @return 指定日期按“时:分“格式显示*/public static String formatShortTime(Calendar cal) {return short_time_sdf.format(cal.getTime());}/*** 指定日期的默认显示,具体格式:时:分* * @param date*            指定的日期* @return 指定日期按“时:分“格式显示*/public static String formatShortTime(Date date) {return short_time_sdf.format(date);}// // parseDate// parseCalendar// parseTimestamp// 将字符串按照一定的格式转化为日期或时间// /*** 根据指定的格式将字符串转换成Date 如输入:2003-11-19 11:20:20将按照这个转成时间* * @param src*            将要转换的原始字符窜* @param pattern*            转换的匹配格式* @return 如果转换成功则返回转换后的日期* @throws ParseException* @throws AIDateFormatException*/public static Date parseDate(String src, String pattern)throws ParseException {return getSDFormat(pattern).parse(src);}/*** 根据指定的格式将字符串转换成Date 如输入:2003-11-19 11:20:20将按照这个转成时间* * @param src*            将要转换的原始字符窜* @param pattern*            转换的匹配格式* @return 如果转换成功则返回转换后的日期* @throws ParseException* @throws AIDateFormatException*/public static Calendar parseCalendar(String src, String pattern)throws ParseException {Date date = parseDate(src, pattern);Calendar cal = Calendar.getInstance();cal.setTime(date);return cal;}public static String formatAddDate(String src, String pattern, int amount)throws ParseException {Calendar cal;cal = parseCalendar(src, pattern);cal.add(Calendar.DATE, amount);return formatDate(cal);}/*** 根据指定的格式将字符串转换成Date 如输入:2003-11-19 11:20:20将按照这个转成时间* * @param src*            将要转换的原始字符窜* @param pattern*            转换的匹配格式* @return 如果转换成功则返回转换后的时间戳* @throws ParseException* @throws AIDateFormatException*/public static Timestamp parseTimestamp(String src, String pattern)throws ParseException {Date date = parseDate(src, pattern);return new Timestamp(date.getTime());}// // dateDiff// 计算两个日期之间的差值// /*** 计算两个时间之间的差值,根据标志的不同而不同* * @param flag*            计算标志,表示按照年/月/日/时/分/秒等计算* @param calSrc*            减数* @param calDes*            被减数* @return 两个日期之间的差值*/public static int dateDiff(char flag, Calendar calSrc, Calendar calDes) {long millisDiff = getMillis(calSrc) - getMillis(calDes);if (flag == 'y') {return (calSrc.get(calSrc.YEAR) - calDes.get(calDes.YEAR));}if (flag == 'd') {return (int) (millisDiff / DAY_IN_MILLIS);}if (flag == 'h') {return (int) (millisDiff / HOUR_IN_MILLIS);}if (flag == 'm') {return (int) (millisDiff / MINUTE_IN_MILLIS);}if (flag == 's') {return (int) (millisDiff / SECOND_IN_MILLIS);}return 0;}/*** String类型 转换为Date,* 如果参数长度为10 转换格式”yyyy-MM-dd“*如果参数长度为19 转换格式”yyyy-MM-dd HH:mm:ss“* * @param text*             String类型的时间值*/public void setAsText(String text) throws IllegalArgumentException {if (StringUtils.hasText(text)) {try {if (text.indexOf(":") == -1 && text.length() == 10) {setValue(this.date_sdf.parse(text));} else if (text.indexOf(":") > 0 && text.length() == 19) {setValue(this.datetimeFormat.parse(text));} else {throw new IllegalArgumentException("Could not parse date, date format is error ");}} catch (ParseException ex) {IllegalArgumentException iae = new IllegalArgumentException("Could not parse date: " + ex.getMessage());iae.initCause(ex);throw iae;}} else {setValue(null);}}public static int getYear(){GregorianCalendar calendar=new GregorianCalendar();calendar.setTime(getDate());return calendar.get(Calendar.YEAR);}}

转载于:https://my.oschina.net/budaoniu/blog/605610

java重复造轮子系列篇-----时间date相关推荐

  1. java重复造轮子系列篇------发送邮件sendEmail

    2019独角兽企业重金招聘Python工程师标准>>> 发邮件 package org.jeecgframework.core.util;import java.io.File; i ...

  2. 重复造轮子系列——基于FastReport设计打印模板实现桌面端WPF套打和商超POS高度自适应小票打印...

    重复造轮子系列--基于FastReport设计打印模板实现桌面端WPF套打和商超POS高度自适应小票打印 一.引言 桌面端系统经常需要对接各种硬件设备,比如扫描器.读卡器.打印机等. 这里介绍下桌面端 ...

  3. 还在重复造轮子?Java开发人员必知必会的20种常用类库和API

    介绍 一个有经验的Java开发人员特征之一就是善于使用已有的轮子来造车.<Effective Java>的作者Joshua Bloch曾经说过:"建议使用现有的API来开发,而不 ...

  4. json转string工具_不要再重复造轮子了,这款开源工具类库贼好使!

    Hutool是一个小而全的Java工具类库,它帮助我们简化每一行代码,避免重复造轮子.如果你有需要用到某些工具类的时候,不妨在Hutool里面找找.本文总结了平时常用的16个工具类,希望对大家有所帮助 ...

  5. 不是“重复”造轮子,百度飞桨框架2.0如何俘获人心

    2016 年,百度 PaddlePaddle 打响了国产深度学习框架开源的第一枪. 2019 年 4 月,在 Wave Summit 深度学习开发者峰会上,首次发布了PaddlePaddle 的中文名 ...

  6. Spring Boot并不重复“造轮子”

    2.1 Spring Boot简介 Spring Boot是由Pivotal团队提供的基于Spring的全新框架,其设计目的是简化Spring应用的搭建和开发过程.该框架遵循"约定大于配置& ...

  7. 51年被发现9次,陶哲轩证明的公式成了重复造轮子?事情并没有这么简单

    晓查 栗子 发自 凹非寺  量子位 报道 | 公众号 QbitAI 在科学探索的过程中,"重复造轮子"从来就不新鲜. 最知名如牛顿和莱布尼茨,各自独立发明了微积分:而计算机领域,也 ...

  8. 到底是否应该重复造轮子

    引言 之所以谈起这个话题,是因为和新公司同事的一次交流.他是LZ当时二面的面试官(以下简称CZ),看过LZ的github,因此知道LZ正在尝试写一个redis的Java客户端.在交流的过程中,CZ给L ...

  9. 不要重复造轮子 Stop Trying to Reinvent the Wheel

    "Stop Trying to Reinvent the Wheel(不要重复造轮子 )", 可能是每个程序员入行被告知的第一条准则.在公司里面,我也会对团队里面每个新进的成员反复 ...

最新文章

  1. 2022-2028年中国可降解聚乙烯农用地膜产业竞争现状及发展规模预测报告
  2. Javascript学习7 - 脚本化浏览器窗口
  3. 三代测序纠错软件汇总篇
  4. 什么时候是找工作的最佳时期? | 原力计划
  5. php中url问题,PHP中URL域的解析
  6. [转]资深CTO:关于技术团队打造与管理的10问10答
  7. js实现阶乘算法的三种方法
  8. java统计空间占用_JVM —— Java 对象占用空间大小计算
  9. string类的常用函数
  10. MySQL进阶:从删库到跑路
  11. 数据中心存储改造方案
  12. win10无法直接用照片查看器打开图片怎么办
  13. 智慧环保检测平台Axure原型图
  14. 总管家云CRM 解除业务员的后顾之忧
  15. 关于一次pkgs --update错误记录(cmd_package_update 451)
  16. php 常用组件,PHP 程序员应该使用的10个组件
  17. python制作二维码_利用Python制作二维码
  18. 基于微信小程序的共享课本系统 毕业设计毕设参考
  19. node php v2ex,一个仿V2EX的开源二次元论坛程序:Vmoex安装教程
  20. 隐马尔科夫模型 HMM 与 语音识别 speech recognition (1):名词解释

热门文章

  1. python3使用cx_Oracle中文乱码
  2. Windows 10第四个大补丸来啦
  3. R3Query 大数据分析系统2017将发布免费个人版
  4. Java基础之Switch语句
  5. PHP获取IP地址以及IP地址所在位置
  6. oracle em登陆不了,账户密码过期
  7. 希尔排序(插入排序的优化算法)
  8. rtti是什么java_RTTI
  9. 【转载】IP网络位,主机位,广播地址及掩码
  10. shell脚本——实现简单的功能