作者:NiceCui

  • 本文谢绝转载,如需转载需征得作者本人同意,谢谢。
  • 本文链接:http://www.cnblogs.com/NiceCui/p/7846812.html
  • 邮箱:moyi@moyibolg.com
  • 日期:2017-11-16

平时写代码有时会常用到一些处理日期的逻辑,自己写了一个工具包,方便每次处理

 import java.text.ParseException;

 import java.text.SimpleDateFormat;
import java.util.Date; import org.junit.Test; /**
* 日期处理工具包
* @author NiceCui
* @date 2017-11-14
*
*/
public class DateTool { /**
* 讲字符串格式的日期 转换成 自定义的 日期格式 返回Date类型
*
* @param String
* date
* @param String
* format
* @return Date
*/
public static Date getDate(String date, String format) {
if (date == null)
return null;
java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat(format);
try {
return formatdatetime.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
} /**
* 讲Date类型的日期 转换成 String 字符串形式的
*
* @param date
* @return String
*/
public static String getTimeStr(Date date) {
if (date == null)
return null;
java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
return formatdatetime.format(date);
} /**
* 比较两个 Date类型的 日期 是否是一样的
*
* @param Date
* day1
* @param Date
* day2
* @return boolean
*/
public static boolean isSameDay(Date day1, Date day2) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String ds1 = dateFormat.format(day1);
String ds2 = dateFormat.format(day2);
if (ds1.equals(ds2)) {
return true;
} else {
return false;
}
} /**
* 返回开始日期 和 结束日期直接间隔的天数 返回的int类型 单位是 天
*
* @param Date
* start
* @param Date
* end
* @return int
*/
public static int getDays(Date start, Date end) {
Date normStart = DateTool.getDateBegin(start);
Date normEnd = DateTool.getDateBegin(end);
int days = (int) ((normEnd.getTime() - normStart.getTime()) / (1000L * 24 * 3600)); return days;
} /**
* 获得一天的第1s
*
* @param date
* @return
*/
public static Date getDateBegin(Date date) {
Date dateBegin = DateTool.getDate(DateTool.getDateStr(date), "yyyy-MM-dd");
return dateBegin;
}
public static String getDateStr(Date date) {
if(date==null)
return null;
java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy-MM-dd");
return formatdatetime.format(date);
}
public static String getDateStr(Date date, String format) {
if(date==null) return null;
java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat(format);
return formatdatetime.format(date);
} /**
* 获得一天的最后1s
*
* @param date
* @return
*/
public static Date getDateEnd(Date date) {
Date endDate = DateTool.getDate(DateTool.getDateStr(new Date()) + " 23:59:59", "yyyy-MM-dd HH:mm:ss");
return endDate;
} /**
* 讲字符串形式的日期 返回 固定格式 年月日形式的Date形式的 日期
*
* @param String
* datestr
* @return Date
*/
public static Date getDateStr(String datestr) {
java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy-MM-dd");
try {
return formatdatetime.parse(datestr);
} catch (ParseException e) {
e.printStackTrace();
return null;
}
} /**
* 返回 String 类型的 年
*
* @param date
* @return
*/
public static String getYearStr(Date date) {
java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy");
return formatdatetime.format(date);
} /**
* 返回 int 类型 的年
*
* @param date
* @return
*/
public static int getYear(Date date) {
java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy");
return Integer.parseInt(formatdatetime.format(date));
} /**
* 返回int类型的月
*
* @param date
* @return
*/
public static int getMonth(Date date) {
java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("MM");
return Integer.parseInt(formatdatetime.format(date));
} /**
* "Tue May 17 10:26:26 CST 2011 由date.toString()得到 像这样的日期如何格式化?": String dstr =
* "Tue May 17 10:26:26 CST 2011"; SimpleDateFormat formatter = new
* SimpleDateFormat("EEEE MMM dd HH:mm:ss Z yyyy"); Date d =
* formatter.parse(dstr);
*
* @return
*/
public static Date parseDateStr(String dstr) {
Date d = null;
SimpleDateFormat formatter = new SimpleDateFormat("EEEE MMM dd HH:mm:ss Z yyyy");
try {
d = formatter.parse(dstr);
} catch (ParseException e) {
formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
try {
d = formatter.parse(dstr);
} catch (Exception e2) {
// TODO: handle exception
}
}
return d;
} @Test
public void test() { String startTime = "2017-11-16";
// Date time = Common.getDate(startTime+" 00:00:00","yyyy-MM-dd HH:mm:ss");
// SimpleDateFormat fomat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// System.out.println(fomat.format(time)); // Date date = new Date();
// Date date1 = new Date();
// System.out.println(isSameDay(date,date1)); System.out.println(parseDateStr(startTime));
} }

java工具包一:日期处理的更多相关文章

  1. [置顶] 提高生产力:开源Java工具包Jodd(Java的”瑞士军刀”)

    官方网站:http://jodd.org/ 下载地址:http://jodd.org/download/index.html Jodd=tools + ioc + mvc + db + aop + t ...

  2. 填坑:Java 中的日期转换

    我们之前讨论过时间,在Java 中有一些方法会出现横线?比如Date 过期方法. 参考文章:知识点:java一些方法会有横线?以Date 过期方法为例 Java中的日期和时间处理方法 Date类(官方 ...

  3. 提高生产力:开源Java工具包Jodd(Java的”瑞士军刀”)

    官方网站:http://jodd.org/ 下载地址:http://jodd.org/download/index.html Jodd=tools + ioc + mvc + db + aop + t ...

  4. GitHub Java项目推荐|功能丰富的 Java 工具包|提高开发效率

    GitHub Java项目推荐|功能丰富的 Java 工具包|提高开发效率 功能丰富的 Java 工具包.它帮助我们实现了常用的工具方法,从而减少代码的体积,提高开发效率.该项目最初是作者工作项目中的 ...

  5. Neo4j图数据库管理系统开发笔记之一:Neo4j Java 工具包

    1 应用开发概述 基于数据传输效率以及接口自定义等特殊性需求,我们暂时放弃使用Neo4j服务器版本,而是在Neo4j嵌入式版本的基础上进行一些封装性的开发.封装的重点,是解决Neo4j嵌入式版本Emb ...

  6. Java Hour 50 日期类型

    Plan List: 1 Java 中的日期类型 2 mysql 相关 3 java code style 鉴于本问题太过普通,所以参考文章满大街都是,因此本文内容基本为转载和验证. java.sql ...

  7. [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  8. 如何在jmeter中调用自己写的java工具包

    本文介绍在jmeter中调用自己写java工具包,并非直接继承jmeter提供的java sample request接口. 工具/原料 jmeter eclipse 方法/步骤 通常用jmeter做 ...

  9. JAVA格式化时间日期

    JAVA格式化时间日期 import java.util.Date; import java.text.DateFormat; /** * 格式化时间类 * DateFormat.FULL = 0 * ...

  10. Delphi与Java中的日期互换

    在最近做的一个项目中用到了Java和Delphi,发现它们不能正确读取对方的日期类型,如在Java中写入一个值为“2007-12-1”的日期值,通过Delphi读取却不是这个值了.通过查阅资料,发现两 ...

随机推荐

  1. skynet 源码阅读笔记 bootstrap.lua

    最近几周粗略看了 skynet 代码的 C 部分.遇到很多知识点以前只是知道,但并不十分了解,所以这是一个学习的过程. 从 main 函数开始,闷头一阵看下来,着实蛋疼. 当看了 skynet_mq. ...

  2. postgresql-查看各个数据库大小

    查看各个数据库表大小(不包含索引),以及表数据量 mysql: select table_name,concat(round((DATA_LENGTH/1024/1024),2),'M')as siz ...

  3. iOS-IAP内购的那些事(iOS内购漏单的问题)

    前言 说起内购,其实挺令开发者厌烦的,原因呢,先不说漏单的问题,首先苹果要扣除30%的销售额哦,可恨不?(我觉得可恨),有些想办法先隐藏掉第三方支付(支付宝.微信等),等项目上线了,再跳过内购使用第三 ...

  4. 在vue项目中stylus的安装及使用

    Stylus是一个CSS预处理器. Stylus安装包安装: dell@DESKTOP-KD0EJ4H MINGW64 /f/gsff-frone $ cnpm install stylus --sa ...

  5. [原创]K8飞刀 新增Acunetix WVS 远程漏洞 反制黑客

    工具: K8飞刀20150603组织: K8搞基大队[K8team]作者: K8拉登哥哥博客: http://qqhack8.blog.163.com发布: 2015/6/3 20:41:29 简介: ...

  6. 【sping揭秘】8、容器内部事件发布(一)

    容器内部事件发布 Spring的applicationContext容器提供的容器内事件发布功能,是通过java提供的自定义事件实现的 事件类型:eventObject 类继承 事件监听:eventL ...

  7. web工程迁移---jboss5迁移到jboss6

    这几天在做web工程的迁移,从jboss 5迁移到jboss 6.3. 在做迁移的过程中遇到了一些问题,在这里记录一下. 首先来看一下jboss5和jboss6.3的区别:          上面两幅 ...

  8. pigz 压缩

    压缩工具--pigz 压缩: tar cvf - 目录名 | pigz -9 -p 24 > file.tgz pigz:用法-9是压缩比率比较大,-p是指定cpu的核数. 解压: pigz - ...

  9. Android开发艺术探索学习笔记(六)

    第六章 Android的Drawable  Drawable的优点:使用简单,比自定义view的成本要低:非图片类型的Drawable占用空间小,有利于减小APK安装包的大小. 6.1Drawable ...

  10. Android_ 重写系统Crash处理类,保存Crash信息到SD卡 和 完美退出程序的方法

    转载时注明地址:http://blog.csdn.net/xiaanming/article/details/9344703 我们开发Android应用的时候,当出现Crash的时候,系统弹出一个警告 ...