package org.apache.pwd.util;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

public class DateFormatUtil {

/** 12小时制 */

private static final String DATE_FORMAT_12_HOUR = "yyyy/MM/dd hh:mm:ss";

/** 24小时制 */

private static final String DATE_FORMAT_24_HOUR = "yyyy/MM/dd HH:mm:ss";

/**

* 根据格式返回日期字符串

*

* @param dateInfo

*            日期

* @param stringFormat

*            格式化字符串

* @return 日期字符串

*/

public static String getStringDate(Date dateInfo, String stringFormat) {

if(isNullOrEmpty(stringFormat)){

return null;

}

SimpleDateFormat sdf = new SimpleDateFormat(stringFormat);

String formated = sdf.format(dateInfo);

return formated;

}

/**

* 根据格式返回日期

*

* @param dateInfo

*            日期字符串

* @param stringFormat

*            格式化字符串

* @return 日期

* @throws Exception

*             例外

*/

public static Date getFormatDate(String dateInfo, String stringFormat) throws Exception {

if (isNullOrEmpty(stringFormat)) {

return null;

}

SimpleDateFormat sdf = new SimpleDateFormat(stringFormat);

Date formated = sdf.parse(dateInfo);

return formated;

}

/**

* 根据年月日生成Calendar对象

*

* @param year

*            年

* @param month

*            月

* @param day

*            日

* @return Calendar对象

*/

public static Calendar createCalendar(int year, int month, int day) {

Calendar cal = Calendar.getInstance();

if (year

year = 2000 + year;

}

cal.set(year, month - 1, day);

return cal;

}

/**

* 根据日期生成Calendar对象

*

* @param date

*            日期

* @return Calendar对象

*/

public static Calendar createCalendar(int date) {

int year = date / 1000;

int month = (date % 10000) / 100;

int day = date % 100;

Calendar cal = Calendar.getInstance();

cal.set(year, month - 1, day);

return cal;

}

/**

* 返回年份

*

* @return 年份

* @throws Exception

*             例外

*/

public static Integer getNowYear() throws Exception {

Calendar cal = Calendar.getInstance();

int year = cal.get(Calendar.YEAR);

return year;

}

/**

* 返回月份

*

* @return 月份

* @throws Exception

*             例外

*/

public static Integer getNowMonth() throws Exception {

Calendar cal = Calendar.getInstance();

int month = cal.get(Calendar.MONTH) + 1;

return month;

}

/**

* 返回当前日期

*

* @return 日期

*/

public static Integer getNowDay() {

Calendar cal = Calendar.getInstance();

int day = cal.get(Calendar.DAY_OF_MONTH);

return day;

}

/**

* 返回某月份的第一天

*

* @param year

*            年

* @param month

*            月

* @return 某月份的第一天

*/

public static Integer getFirstDayOfMonth(int year, int month) {

Calendar cal = createCalendar(year, month, 1);

int day = cal.get(Calendar.DAY_OF_MONTH);

return day;

}

/**

* 返回某月份的最后一天

*

* @param year

*            年

* @param month

*            月

* @return 某月份的最后一天

*/

public static Integer getLastDayOfMonth(int year, int month) {

Calendar cal = createCalendar(year, month, 1);

int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);

return lastDay;

}

/**

* 计算两个日期之间相差的天数

*

* @param startDate

*            开始日期

* @param endDate

*            结束日期

* @return 两个日期之间相差的天数

*/

public static Integer daysBetweenData(Integer startDate, Integer endDate) {

if(startDate == null || endDate == null){

return null;

}

Calendar startCal = createCalendar(startDate);

Calendar endCal = createCalendar(endDate);

Calendar cal = null;

if (startCal.before(endCal)) {

cal = startCal;

startCal = endCal;

endCal = cal;

}

Long lg = (startCal.getTimeInMillis() - endCal.getTimeInMillis()) / 1000 / 60 / 60 / 24;

return lg.intValue();

}

/**

* 判断是否为闰年

*

* @param obj

*            输入年份

* @return 是否为闰年

* @throws Exception

*             例外

*/

public static  boolean isLeapYear(T obj) throws Exception {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");

Calendar calendar = Calendar.getInstance();

int year = 0;

if (obj instanceof String) {

Date dateInfo = sdf.parse((String) obj);

calendar.setTime(dateInfo);

year = calendar.get(Calendar.YEAR);

} else if (obj instanceof Date) {

calendar.setTime((Date) obj);

year = calendar.get(Calendar.YEAR);

}else{

return false;

}

if ((year % 4 == 0 && year % 100 != 0) || (year % 100 == 0 && year % 400 == 0)) {

System.out.println("是闰年");

return true;

}

System.out.println("不是闰年");

return false;

}

/**

*

*

* @param stringFormat

* @return

*/

public static boolean isNullOrEmpty(String stringFormat) {

return (stringFormat == null || stringFormat.length() == 0) ? true : false;

}

public static void main(String[] args) throws Exception {

String dateInfo = "2014/12/12";

Calendar cal = Calendar.getInstance();

cal.setTime(new SimpleDateFormat("yyyy/MM/dd").parse(dateInfo));

// isLeapYear(cal.getTime());

System.out.println(getNowDay());

System.out.println(getFirstDayOfMonth(2014, 12));

System.out.println(getLastDayOfMonth(2014, 9));

// System.out.println(getStringDate(new Date(), "yyyy/MM/dd HH:mm:ss"));

System.out.println(daysBetweenData(20140303, 20140304));

}

}

java 日期的工具类_java 日期时间工具类相关推荐

  1. java时间日期工具类_java日期处理工具类

    java日期处理工具类 import java.text.DecimalFormat; import java.text.ParsePosition; import java.text.SimpleD ...

  2. java date只保留年月日_Java日期时间API系列14-----Jdk8中日期API类,日期计算1,获取年月日时分秒等...

    通过Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析 ,可以看出java8设计非常好,实现接口Temporal, Tempora ...

  3. java date加一天_Java日期时间API系列15-----Jdk8中API类,java日期计算2,年月日时分秒的加减等...

    通过Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析 ,可以看出java8设计非常好,实现接口Temporal, Tempora ...

  4. java 处理时间的类_java 日期时间处理类

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. import java.util.Calendar; import java.sql.Da ...

  5. java 时间类_Java日期和时间类简介

    Java 的日期和时间类位于 java.util 包中.利用日期时间类提供的方法,可以获取当前的日期和时间,创建日期和时间参数,计算和比较时间. Date 类 Date 类是 Java 中的日期时间类 ...

  6. java 日期计算类_java日期计算工具类【包含常用的日期计算方法】

    package com.test; import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.Cal ...

  7. java中椭圆类_Java中的Graphics2D类基本使用的教程

    Java中的Graphics2D类基本使用的教程 Java语言在Graphics类提供绘制各种基本的几何图形的基础上,扩展Graphics类提供一个Graphics2D类,它拥用更强大的二维图形处理能 ...

  8. java源程序可以有几个主类_Java源程序是由类定义组成的,每个程序可以定义若干个类,但只有一个类是主类。_学小易找答案...

    [填空题]分析以下程序的执行结果 #include using namespace std; class Sample { int x; int y; public: Sample(int a,int ...

  9. java 面试什么是类_Java 面试题代码类收集

    long temp=(int)3.9; System.out.println(temp); temp%=2; System.out.println(temp); 3 1 View Code Java里 ...

  10. java中的祖先类_Java程序公共祖先类-Object

    在Java中,所有的类都继承自Object类,它是所有的始祖,但是我们不需要显示的书写extends Object. equals方法 在JDK中,Object类的equals方法的实现如下: pub ...

最新文章

  1. Java Web项目第二次总结
  2. jforum中对各种servlet对象都进行了封装
  3. 收藏 | 一文总结70篇论文,帮你透彻理解神经网络的剪枝算法
  4. C#通过COM组件操作IE浏览器(二):使用IHTMLDocument3完成登录
  5. java代码快速_java代码编写快捷途经
  6. MongoDB 4.2 新特性解读
  7. sass webpack_如何在Visual Studio和Webpack中编译Sass文件
  8. java 使用不同目录下的类_如何运行在不同目录下的java类文件? - Break易站
  9. 2022危险化学品生产单位安全生产管理人员考试题库及在线模拟考试
  10. 微博视频php解析,微博视频的地址解析下载
  11. 华为交换机作为AC的条件
  12. 三维图看法亲身经验.
  13. 手机java淘汰_极客修:对手并不止安卓!这些年iOS竟然把这么多手机系统淘汰掉了...
  14. 闵帆老师《论文写作》心得体会
  15. 在不同的环境中编译hello world程序
  16. ie默认连接首页没修改
  17. jk触发器改为四进制_数字电路学习笔记(十):更多锁存器和触发器
  18. 计算机网络与多媒体试卷,《计算机网络与多媒体技术》试卷
  19. Cisco(20)——扩展ACL
  20. 下拉多选checkbox

热门文章

  1. vs2022 无法打开包括文件: “crtdbg.h” no such file or directory
  2. wprintf显示中文
  3. Win10解决无法访问其他机器共享的问题
  4. qt android meta data,Qt小技巧5.解决Failed to extract plugin meta data问题
  5. java注销登录_java实现注销登录
  6. linux富文本软件,CherryTree For Linux
  7. 二叉排序树的中序遍历规律_看懂这篇文章,玩转二叉查找树
  8. vim特殊符号的意义
  9. Notebook中?的trick
  10. 机器学习中的高斯过程简介-好文