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读取却不是这个值了.通过查阅资料,发现两 ...
随机推荐
- CentOS 7修改yum源为阿里源
1.备份本地源 1 # mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak 2.获取阿里yum源配置 ...
- ADB 命令介绍
Android adb shell am 命令介绍 am这个指令是 activity manager的缩写.这个命令可以启动Activity.打开或关闭进程.发送广播等操作. am命令格式如下 adb ...
- [Ynoi2016]这是我自己的发明(莫队)
话说这道题数据是不是都是链啊,我不手动扩栈就全 \(RE\)... 不过 \(A\) 了这题还是很爽的,通过昨晚到今天早上的奋斗,终于肝出了这题 其实楼上说的也差不多了,就是把区间拆掉然后莫队瞎搞 弱 ...
- Hive在drop表的时候报错
问题背景: 在安装完Hive之后,初始化mysql是成功的,hive启动也是成功的,也能创建database,在database中也能创建表,也能查看表结构,但是在drop的时候就不行了,在hive ...
- javascript 计算文件MD5 浏览器 javascript读取文件内容
原则上说,浏览器是一个不安全的环境.早期浏览器的内容是静态的,用户上网冲浪,一般就是拉取网页查看.后来,随着互联网的发展,浏览器提供了非常丰富的用户交互功能.从早期的表单交互,到现在的websocke ...
- 【从0到1学Web前端】CSS定位问题三(相对定位,绝对定位) 分类: HTML+CSS 2015-05-29 23:01 842人阅读 评论(0) 收藏
引子: 开始的时候我想先要解决一个问题,怎么设置一个div盒子撑满整个屏幕? 看下面的html代码: <body> <div id="father-body"&g ...
- Docker概念学习系列之Docker的主要目标(2)
不多说,直接上干货! Docker的主要目标: 见[博主]撰写的https://mp.weixin.qq.com/s/ELYUgMpQOhVvTsNCHQLELg 通过对应用组件的封装.分发.部署.运 ...
- 获取Javascript 滚动条距离顶部的距离(兼容IE6+,火狐,谷歌,其它没测)
document.body.scrollTop || document.documentElement.scrollTop
- WPF性能优化的一些建议
尽量多使用Canvas等简单的布局元素,少使用Grid或者StackPanel等复杂的,减小开销. 少用Margin Padding尤其避免嵌套使用. 在自定义控件,尽量不要在控件的ResourceD ...
- 百度全站 https FAQ:技术宅告诉你如何搜索更安全
百度从 14 年开始对外开放了 https 的访问,并于 3 月初正式对全网用户进行了 https 跳转. 你也许会问,切换就切换呗,和我有啥关系?我平常用百度还不是照常顺顺当当的,没感觉到什么切换. ...