java工具包一:日期处理
作者: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工具包一:日期处理的更多相关文章
- [置顶] 提高生产力:开源Java工具包Jodd(Java的”瑞士军刀”)
官方网站:http://jodd.org/ 下载地址:http://jodd.org/download/index.html Jodd=tools + ioc + mvc + db + aop + t ...
- 填坑:Java 中的日期转换
我们之前讨论过时间,在Java 中有一些方法会出现横线?比如Date 过期方法. 参考文章:知识点:java一些方法会有横线?以Date 过期方法为例 Java中的日期和时间处理方法 Date类(官方 ...
- 提高生产力:开源Java工具包Jodd(Java的”瑞士军刀”)
官方网站:http://jodd.org/ 下载地址:http://jodd.org/download/index.html Jodd=tools + ioc + mvc + db + aop + t ...
- GitHub Java项目推荐|功能丰富的 Java 工具包|提高开发效率
GitHub Java项目推荐|功能丰富的 Java 工具包|提高开发效率 功能丰富的 Java 工具包.它帮助我们实现了常用的工具方法,从而减少代码的体积,提高开发效率.该项目最初是作者工作项目中的 ...
- Neo4j图数据库管理系统开发笔记之一:Neo4j Java 工具包
1 应用开发概述 基于数据传输效率以及接口自定义等特殊性需求,我们暂时放弃使用Neo4j服务器版本,而是在Neo4j嵌入式版本的基础上进行一些封装性的开发.封装的重点,是解决Neo4j嵌入式版本Emb ...
- Java Hour 50 日期类型
Plan List: 1 Java 中的日期类型 2 mysql 相关 3 java code style 鉴于本问题太过普通,所以参考文章满大街都是,因此本文内容基本为转载和验证. java.sql ...
- [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- 如何在jmeter中调用自己写的java工具包
本文介绍在jmeter中调用自己写java工具包,并非直接继承jmeter提供的java sample request接口. 工具/原料 jmeter eclipse 方法/步骤 通常用jmeter做 ...
- JAVA格式化时间日期
JAVA格式化时间日期 import java.util.Date; import java.text.DateFormat; /** * 格式化时间类 * DateFormat.FULL = 0 * ...
- Delphi与Java中的日期互换
在最近做的一个项目中用到了Java和Delphi,发现它们不能正确读取对方的日期类型,如在Java中写入一个值为“2007-12-1”的日期值,通过Delphi读取却不是这个值了.通过查阅资料,发现两 ...
随机推荐
- [CTSC2008]网络管理(整体二分+树剖+树状数组)
一道经典的带修改树链第 \(k\) 大的问题. 我只想出三个 \(\log\) 的解法... 整体二分+树剖+树状数组. 那不是暴力随便踩的吗??? 不过跑得挺快的. \(Code\ Below:\) ...
- apache ab
ab -p postfile.json -T 'application/json' -n 100 -c 10 -v 2 http://192.168.1.103:3002/checkStashSlot ...
- Freemarker实例教程
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本人声明.否则将追究法律责任.作者:永恒の_☆ 地址:http://blog.csdn.net/chenghui0317/a ...
- idea导入myeclipes项目、运行项目
1. 导入,部署: https://blog.csdn.net/u010570551/article/details/51510447 2. idea导入MyEclipse Web项目时,服务器搭建运 ...
- linq查询时查询语句中附带多个查询时“已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭”
主要原因是因为EF采用的 DataReader来进行数据的存储,此时connection使用的是同一个. 例如: list = _tzNewsService.GetAll().Where(w => ...
- POJ 2562
#include<iostream> #include<algorithm> #define MAXN 15 using namespace std; //int rec[MA ...
- 刚破了潘金莲的身份信息(图片文字识别),win7、win10实测可用(免费下载)
刚破了潘金莲的身份信息(图片文字识别),win7.win10实测可用 效果如下: 证照,车牌.身份证.名片.营业执照 等图片文字均可识别 电脑版 本人出品 大小1.3MB 下载地址:https://p ...
- Linux 服务器部署 PgAdmin 4 Server
PostgreSQL 使用率越来越高,但是好用的图形化软件,诸如 Navicat.DataGrip.HeidiSQL 都是客户端软件,对于访问控制来说,比起 MySQL 的 phpMyAdmin 更加 ...
- C# 获取所有对象的字符串表示一ToString方法
应用程序开发过程中经常需要获取对象的字符串表示.Object类中定义了一个ToString的虚方法.所以在任何类型的实例上都能调用该方法. C#中几乎所有的类型都派生自Object,所以如果当前类型没 ...
- 把 Elasticsearch 当数据库使:聚合后排序
使用 https://github.com/taowen/es-monitor 可以用 SQL 进行 elasticsearch 的查询.有的时候分桶聚合之后会产生很多的桶,我们只对其中部分的桶关心. ...