作者: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. 【LA3485】 Bridge

    前言 哈哈哈,垃圾微积分哈哈哈 前置知识:自适应Simpson法与微积分初步,学会编程 Solution 考虑一下我们有的是什么: 一段桥梁的横向距离,悬线的长度,以及高度. 我们发现如果我们重新设一 ...

  2. OCP新题,2019题库出现大量新题,062-第22题

    choose two Your database is running in ARCHIVELOG mode. You want to take a consistent whole database ...

  3. Java - 阅读与查找

    WebSites http://www.importnew.com/ https://www.java-tips.org/ http://www.javaworld.com/ http://www.p ...

  4. Smart/400开发上手4: 调试Cobol代码 (DEBUG with QBATCH)

    Step1:Compile Cobol source CB TIM07 using *SRCDBG option例如:CB MEMBER(TIM07) OPTION(*SRCDBG) WORKU(TI ...

  5. docker 下安装mssql-server-linux

    docker search mssql 查找mssql镜像 docker pull microsoft/mssql-server-linux 拉去mssql镜像 docker images 查看镜像 ...

  6. python的datetime常用方法

    把datetime转成字符串 datetime.strftime("%Y-%m-%d-%H") 把字符串转成datetime datetime.strptime(datetime, ...

  7. async await 的执行

    async await的执行 注意:本次代码仅在 Chrome 73 下进行测试. start 不了解 async await 的,先去看阮一峰老师的文章async 函数. 先来看一道头条的面试题,这 ...

  8. Feign status 400 reading 问题分析

    背景:项目使用的是微服务架构,采用springboot来开发,所有的服务都是基于内嵌tomcat来运行 问题:项目部署到测试环境之后,偶尔在后台日志会看到这样的日志:Feign status 400 ...

  9. C# 多线程之List的线程安全问题

    网上关于List的线程安全问题将的很少,所以自己实验了一把,发现确实是线程不安全的.所以当你在进行多线程编程中使用了共享的List集合,必须对其进行线程安全处理. List的Add方法是线程不安全的, ...

  10. JAVA框架之Hibernate【配置文件详解】

    Hibernate配置文件主要功能是配置数据库连接和Hibernate运行时所需的各种属性,配置文件应该位于JAVA应用或者JAVA Web应用的类文件中,刚开始接触Hibernate的时候,感觉Hi ...