<pre name="code" class="java">package com.util;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;public class CalendarUtil {
/** 缺省日期格式 */public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";/** 缺省时间格式 */public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss";/** 缺省月格式 */public static final String DEFAULT_MONTH = "MONTH";/** 缺省年格式 */public static final String DEFAULT_YEAR = "YEAR";/** 缺省日格式 */public static final String DEFAULT_DATE = "DAY";/** 缺省长日期格式 */public static final String DEFAULT_DATETIME_FORMAT = "yyyy-MM-dd HH-mm";/** 缺省长日期格式,精确到秒 */public static final String DEFAULT_DATETIME_FORMAT_SEC = "yyyy-MM-dd HH:mm:ss";/*** 取当前日期* * @return 当前日期的字符串 ,如2002-12-12**/public static String today() {java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat(DEFAULT_DATE_FORMAT);java.util.Date currentTime_1 = SystemUtil.getCurDate();String dateString = formatter.format(currentTime_1);return dateString;}public static String today(String strFormat) {java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat(strFormat);java.util.Date currentTime_1 = SystemUtil.getCurDate();String dateString = formatter.format(currentTime_1);return dateString;}/*** 取当前时间,* * @return 当前时间,如:21:10:12**/public static String time() {java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat(DEFAULT_TIME_FORMAT);java.util.Date currentTime_1 = SystemUtil.getCurDate();String dateString = formatter.format(currentTime_1);return dateString;}/*** 取当前时间,规定格式 'hh:mm:ss'* * @return 当前时间,如:21:10:12**/public static String time(String strFormat) {java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat(strFormat);java.util.Date currentTime_1 = SystemUtil.getCurDate();String dateString = formatter.format(currentTime_1);return dateString;}/*** 取得相对于当前时间增加天数/月数/年数后的日期 <br>* 欲取得当前日期5天前的日期,可做如下调用:<br>* getAddDay("DATE", -5).* * @param field*            ,段,如"year","month","date",对大小写不敏感* * @param amount*            ,增加的数量(减少用负数表示),如5,-1* @return 格式化后的字符串 如"2000-02-01"**/public static String getAddDay(String field, int amount) {// 当前日期和前一天java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat(DEFAULT_DATETIME_FORMAT_SEC);Calendar rightNow = Calendar.getInstance();Date dt = SystemUtil.getCurDate();rightNow.setTime(dt);int intField = 0;String tmpField = field.toUpperCase();intField = Calendar.DATE;if (tmpField.equals(DEFAULT_YEAR))intField = Calendar.YEAR;if (tmpField.equals(DEFAULT_MONTH))intField = Calendar.MONTH;if (tmpField.equals(DEFAULT_DATE))intField = Calendar.DATE;rightNow.add(intField, amount);String day = formatter.format(rightNow.getTime());return day;}/*** 取得相对于当前时间增加天数/月数/年数后的日期,按指定格式输出* * * 欲取得当前日期5天前的日期,可做如下调用:<br>* getAddDay("DATE", -5,'yyyy-mm-dd hh:mm').* * @param field*            ,段,如"year","month","date",对大小写不敏感* * @param amount*            ,增加的数量(减少用负数表示),如5,-1* @param strFormat*            ,输出格式,如"yyyy-mm-dd","yyyy-mm-dd hh:mm"* @return 格式化后的字符串 如"2000-02-01 hh:mm:ss"**/public static String getAddDay(String field, int amount, String strFormat) {// 当前日期和前一天java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat(strFormat);Calendar rightNow = Calendar.getInstance();Date dt = SystemUtil.getCurDate();rightNow.setTime(dt);int intField = 0;String tmpField = field.toUpperCase();intField = Calendar.DATE;if (tmpField.equals(DEFAULT_YEAR))intField = Calendar.YEAR;if (tmpField.equals(DEFAULT_MONTH))intField = Calendar.MONTH;if (tmpField.equals(DEFAULT_DATE))intField = Calendar.DATE;rightNow.add(intField, amount);String day = formatter.format(rightNow.getTime());return day;}/*** 获取办理期限,过滤节假日* * @param days*            提交的天数* * @param flags*            设定的节假日列表* @return 实际的办理期限*/public static String getDistDay(int days, String[] flags) {int tempday = days;int count = 0;for (int i = 0; i < flags.length; i++) {if (flags[i].equals("1")) {count += 1;}if (count == days) {tempday = i;break;}}return getAddDay(DEFAULT_DATE, tempday, DEFAULT_DATE_FORMAT);}/*** 功能:对于给定的时间增加天数/月数/年数后的日期,按指定格式输出* * * @param date*            String 要改变的日期* @param field*            int 日期改变的字段,YEAR,MONTH,DAY* @param amount*            int 改变量* * @param strFormat*            日期返回格式* @return* @throws ParseException* @author*/public static String getAddDay(String date, String field, int amount,String strFormat) {try {// 当前日期和前一天java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat(strFormat);Calendar rightNow = Calendar.getInstance();Date tempdate = formatter.parse(date);rightNow.setTime(tempdate);int intField = 0;String tmpField = field.toUpperCase();intField = Calendar.DATE;if (tmpField.equals(DEFAULT_YEAR))intField = Calendar.YEAR;if (tmpField.equals(DEFAULT_MONTH))intField = Calendar.MONTH;if (tmpField.equals(DEFAULT_DATE))intField = Calendar.DATE;rightNow.add(intField, amount);String day = formatter.format(rightNow.getTime());return day;} catch (ParseException e) {e.printStackTrace();}return "";}/*** 功能:对于给定的时间增加天数/月数/年数后的日期,按指定格式输出* * * * @param date*            String 要改变的日期* @param field*            int 日期改变的字段,YEAR,MONTH,DAY* @param amount*            int 改变量* * * @param strFormat*            日期返回格式* @return* @throws ParseException*/public static String getAddDay(Date date, String field, int amount,String strFormat) {// 当前日期和前一天java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat(strFormat);Calendar rightNow = Calendar.getInstance();Date tempdate = date;rightNow.setTime(tempdate);int intField = 0;String tmpField = field.toUpperCase();intField = Calendar.DATE;if (tmpField.equals(DEFAULT_YEAR))intField = Calendar.YEAR;if (tmpField.equals(DEFAULT_MONTH))intField = Calendar.MONTH;if (tmpField.equals(DEFAULT_DATE))intField = Calendar.DATE;rightNow.add(intField, amount);String day = formatter.format(rightNow.getTime());return day;}/*** Timestamp按照指定格式转为字符串* * @param ts*            源对象* * @param sFormat*            ps(如yyyy.mm.dd)* * @return 如:2003-01-01 或2003-01-01 13:21*/public static String toString(Timestamp ts, String sFormat) {if (ts == null) {return "";}java.util.Date d = new java.util.Date(ts.getTime());return toString(d, sFormat);}/*** Timestamp按照缺省格式转为字符串* * @param ts*            源对象* * @return 如:2003-01-01*/public static String toString(Timestamp ts) {return toString(ts, DEFAULT_DATE_FORMAT);}/*** Timestamp按照缺省格式转为字符串,可指定是否使用长格式* * @param ts*            欲转化之变量Timestamp* @param fullFormat*            是否使用长格式* * @return 如:2003-01-01 或2003-01-01 13:21*/public static String toString(Timestamp ts, boolean fullFormat) {String s = null;if (fullFormat) {s = DEFAULT_DATETIME_FORMAT_SEC;} else {s = DEFAULT_DATE_FORMAT;}return toString(ts, s);}/*** 将sqldate型按照指定格式转为字符串* * @param sqldate*            源对象* * @param sFormat*            ps* @return 如:2003-01-01 或2003-01-01 00:00*/public static String toString(java.sql.Date sqldate, String sFormat) {if (sqldate == null) {return "";}java.util.Date d = new java.util.Date(sqldate.getTime());return toString(d, sFormat);}/*** 将sqldate型按照缺省格式转为字符串* * @param sqldate*            源对象* * @return 如:2003-01-01*/public static String toString(java.sql.Date sqldate) {return toString(sqldate, DEFAULT_DATE_FORMAT);}/*** 将java.util.date型按照指定格式转为字符串* * @param d*            源对象* * @param sFormat*            ps* @return 如:2003-01-01*/public static String toString(java.util.Date d, String sFormat) {java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat(sFormat);String dateString = formatter.format(d);return dateString;}/*** 将java.util.date型按照缺省格式转为字符串* * @param d*            源对象* * @return 如:2003-01-01*/public static String toString(java.util.Date d) {return toString(d, DEFAULT_DATE_FORMAT);}/*** 强制类型转换 从串到日期* * @param sDate*            源字符串,采用yyyy-MM-dd格式* @param sFormat*            ps* @return 得到的日期对象* * @throws ParseException*/public static java.util.Date parseDate(String sDate, String sFormat) {java.text.SimpleDateFormat formatter = null;java.util.Date utildate = null;try {formatter = new java.text.SimpleDateFormat(sFormat);utildate = formatter.parse(sDate);} catch (ParseException e) {utildate = new Date();}return utildate;}/*** 强制类型转换 从串到时间戳* * @param sDate*            源串* @param sFormat*            遵循格式* @return 取得的时间戳对象* @throws ParseException*/public static Timestamp parseTimestamp(String sDate, String sFormat) {try {java.text.SimpleDateFormat formatter = null;java.util.Date utildate = null;formatter = new java.text.SimpleDateFormat(sFormat);utildate = formatter.parse(sDate);java.sql.Timestamp tsdate = new java.sql.Timestamp(utildate.getTime());return tsdate;} catch (Exception e) {e.printStackTrace();}return null;}/*** getCurDate 取当前日期* * @return java.util.Date型日期**/public static java.util.Date getCurDate() {return (new java.util.Date());}/*** getCurTimestamp 取当前时间戳* * @return java.sql.Timestamp**/public static java.sql.Timestamp getCurTimestamp() {java.util.Date today = new java.util.Date();java.sql.Timestamp ts = new java.sql.Timestamp(today.getTime());return ts;}/*** getCurTimestamp 取遵循格式的当前时间* * @param sFormat*            遵循格式* @return java.sql.Timestamp**/public static Date getCurDate(String format) {try {SimpleDateFormat formatter = new SimpleDateFormat(format);String strCurDate = toString(new Date(), format);Date date = formatter.parse(strCurDate);return date;} catch (Exception e) {e.printStackTrace();}return new Date();}/*** 返回:20100910210637578*/public static String formate(Date date) {if (date == null) {return "";}return String.format("%1$tY%1$tm%1$td%1$tH%1$tM%1$tS%1$tL", date);}/*** 返回:2010-09-10 21:08:17*/public static String formateYMDHMS(Date date) {if (date == null) {return "";}return String.format("%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS", date);}/*** 返回:2010-09-10*/public static String formateYMD(Date date) {if (date == null) {return "";}return String.format("%1$tY-%1$tm-%1$td", date);}/*** 返回:2010年09月10日*/public static String formateYMD_CN(Date date) {if (date == null) {return "";}return String.format("%1$tY年%1$tm月%1$td日", date);}/*** 返回:09-10*/public static String formateMD(Date date) {if (date == null) {return "";}return String.format("%1$tm-%1$td", date);}/*** 返回:09月10日*/public static String formateMD_CN(Date date) {if (date == null) {return "";}return String.format("%1$tm月%1$td日", date);}/*** 获取23:59:59时间点* * @param Date* @return Date 年月日不变,时分秒改为当天的23:59:59*/public static Date getEndTime(Date date) {if (null == date) {return null;}Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.HOUR_OF_DAY, 23);calendar.set(Calendar.MINUTE, 59);calendar.set(Calendar.SECOND, 59);return calendar.getTime();}/*** 返回指定格式的日期字符串* * @Description: TODO* @param date* @param pattern* @return* @author yuanjin* @date 2013-12-24 上午10:12:35* @return String*/public static String dateToString(Date date, String pattern) {SimpleDateFormat sdf = new SimpleDateFormat(pattern);return sdf.format(date);}public static Date getStringToDate(String format) throws Exception {if (null == format || "".equals(format)) {return null;}SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");Date date = formatter.parse(format);return date;}// 当前日期减n天后的日期,public static Date beforeNowDate(int n) {Calendar rightNow = Calendar.getInstance();rightNow.add(Calendar.DAY_OF_MONTH, -n);return rightNow.getTime();}public static boolean isActiveTime(Date lastDate) {Date nowDate = new Date();// 当前时间\rlong nowTime = nowDate.getTime();long lastTime = lastDate.getTime();// 以前的时间\rlong time = nowTime - lastTime;// 时间相减比较。long temp = time / (1000 * 60);if (temp < (48 * 60))return true;elsereturn false;}/*** 获取00:00:00时间点* * @param Date* @return Date 年月日不变,时分秒改为当天的00:00:00*/public static Date getBeginTime(Date date) {if (null == date) {return null;}Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);return calendar.getTime();}}

常用Date日期方法相关推荐

  1. SQL Server几个常用Date函数(二)

    在上一节SQL Server几个常用Date函数(一)中我们介绍了下表中前两个date函数,本节继续学习下面三个函数. 函数 描述 GETDATE() 返回当前日期和时间 CONVERT() 用不同的 ...

  2. Hive—内置date函数用法详解

    关注微信公众号:CodingTechWork,一起学习进步. 引言   在hive中我们经常需要处理日期数据,hive内置了3个日期函数,其格式只能为yyyy-MM-dd格式或者yyyy-MM-dd ...

  3. java日期函数_JAVA 日期、时间函数大全(超全)

    实 习期间使用ExtJs做项目的时候需要获取上下班时间并进行上网访问记录的截取和判断,需要处理时间以及字符串与时间之间的转换.本想自作一篇关于时间的 博文,但发现java时间函数方式多变,不如上网查资 ...

  4. Linux 下ntpdate网络校时使用

    经常发现虚拟机的时间和本机不同步,有时候甚至影响实验测试效果,经常用date(date 月日时分年.秒)命令修改系统时间,修改完成后还要用hwclock -w命令把时间写入到BIOS. [root@n ...

  5. mysql8.0日期类型_Mysql学习-数据类型(日期时间类型)

    日期时间类型 a.如果表示年月日,通常用DATE表示 b.如果表示年月日时分秒,通常用DATETIME表示 c.如果表示时分秒,通常同TIME表示 日期和时间类型 字节 最小值 最大值 DATE 4 ...

  6. 138 张图带你 MySQL 入门!

    作者 |  cxuan 来源 | Java建设者 SQL 基础使用 MySQL 是一种关系型数据库,说到关系,那么就离不开表与表之间的关系,而最能体现这种关系的其实就是我们接下来需要介绍的主角 SQL ...

  7. JavaScript(四)—— JavaScript 内置对象/JavaScript 简单数据类型与复杂类型

    本篇为 JavaScript 系列笔记第三篇,将陆续更新 JavaScript(一)-- 初识JavaScript / 注释 / 输入输出语句 / 变量 / 数据类型 JavaScript(二)-- ...

  8. mysql怎么显示创表的语句_141张图带你 MySQL 入门

    SQL 基础使用 MySQL 是一种关系型数据库,说到关系,那么就离不开表与表之间的关系,而最能体现这种关系的其实就是我们接下来需要介绍的主角 SQL,SQL 的全称是 Structure Query ...

  9. 非关系型数据库--MongoDB

    MongoDB是一个著名的NoSQL数据库,顾名思义就是不使用SQL的数据库,目前在很多场景都有使用.如果你不喜欢使用笨拙的各种SQL数据库,可以尝试使用一下MongoDB,会有不一样的感受.本文就是 ...

最新文章

  1. FPGA作为从机与STM32进行SPI协议通信---Verilog实现
  2. 随机森林算法demo python spark
  3. UIImage指定区域自由拉伸
  4. c# AseConnection的类型初始值设定项引发异常 无法加载 DLL sybdrvado11.dll 解决办法...
  5. 跟我一起学.NetCore之Options实例演示及分析
  6. e3是合法浮点数吗_下列哪些是不合法的浮点数的选项是 123 2e4.2 .e5 -e3 .234 1e3
  7. 【数据结构与算法】双链表V2.0的Java实现
  8. 通过jdbc的mysql驱动连接oceanbase mysql模式数据库
  9. Python 命令的参数
  10. 【Leetcode】98. 验证二叉搜索树
  11. 一个发散动画的菜单控件(主要记录控件x,y坐标的运动状况)
  12. 阶段3 1.Mybatis_09.Mybatis的多表操作_4 完成account一对一操作-建立实体类关系的方式...
  13. OpenStack Queens版本Security项目介绍
  14. 基础——内部RC振荡电路、外部晶振、RCC、RTC
  15. 搭建太阳系可视化系统,带你探索宇宙的未知奥秘
  16. C++如何检查浮点数是否为整数
  17. python批量数据处理脚本——批量删除文件
  18. 五面阿里拿下飞猪事业部offer,统统给你解决!
  19. 查询按键控制数码管的显示
  20. 计算机整机制造业下滑,多因素导致全球PC出货量下滑 中国增速减缓

热门文章

  1. 管理信息系统期末复习资料
  2. 华南农业大学Linux课程实验二
  3. blog--java后台获取富文本编辑器的内容,博客的磁盘路径与实际博客的存储
  4. 【3D目标检测】Accurate Monocular Object Detection via Color-Embedded 3D Reconstruction for AD
  5. 在客户端上登录微软邮箱时提示您输出的用户名或密码不起作用的解决办法
  6. WIN10X64位提示丢失了 msvcp71.dll 文件
  7. 我的世界服务器聊天显示坐标,我的世界端游怎么显示坐标
  8. 基于若依开发物品管理系统(springboot+vue)
  9. 创新:颠覆笔记本音响系统!Audigy
  10. 医咖会免费STATA教程学习笔记——如何使用stata自带的数据集