import java.util.Calendar;
/**
* <pre>
* 日期时间的处理
* </pre>
* @author lidq
*
*/
public class DateUtil
{
/**
* 检查日期格式
* @param year
* @param month
* @param day
* @return boolean
*/
public final static boolean chkDateFormat(int year,int month,int day) {
try {
/*
// 如果输入日期不是8位的,判定为false.
if (null == date || "".equals(date) || !date.matches("[0-9]{8}")) {
return false;
}
*/
if((year<2000)||(year>3000))
{
return false;
}
if((month<0)||(month>12))
{
return false;
}
if((day<0)||(day>31))
{
return false;
}
//当 年、月、日都有效时。
if((year != 0)&&( month != 0 )&&( day != 0 ))
{
Calendar calendar = Calendar.getInstance();
// 当 Calendar 处于 non-lenient 模式时,如果其日历字段中存在任何不一致性,它都会抛出一个异常。
calendar.setLenient(false);
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month-1);
calendar.set(Calendar.DATE, day);
// 如果日期错误,执行该语句,必定抛出异常.
calendar.get(Calendar.YEAR);
}
} catch (IllegalArgumentException e) {
return false;
}
return true;
}
/**
* 检查日期是否有效
* @param year
* @param month
* @param day
* @return boolean
*/
public final static boolean chkDateValid(int year,int month,int day) {
try {
/*
// 如果输入日期不是8位的,判定为false.
if (null == date || "".equals(date) || !date.matches("[0-9]{8}")) {
return false;
}
*/
if((year<2000)||(year>3000))
{
return false;
}
if((month<=0)||(month>12))
{
return false;
}
if((day<=0)||(day>31))
{
return false;
}
//当 年、月、日都有效时。
Calendar calendar = Calendar.getInstance();
// 当 Calendar 处于 non-lenient 模式时,如果其日历字段中存在任何不一致性,它都会抛出一个异常。
calendar.setLenient(false);
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month-1);
calendar.set(Calendar.DATE, day);
// 如果日期错误,执行该语句,必定抛出异常.
calendar.get(Calendar.YEAR);
} catch (IllegalArgumentException e) {
return false;
}
return true;
}
/**
* 检查日期是否有效
*
* @param year
* @param month
* @param day
* @param hour
* @param minute
* @param second
* @return boolean
*/
public final static boolean chkDateValid(int year,int month,int day,int hour,int minute,int second) {
try {
/*
// 如果输入日期不是8位的,判定为false.
if (null == date || "".equals(date) || !date.matches("[0-9]{8}")) {
return false;
}
*/
if((year<2000)||(year>3000))
{
return false;
}
if((month<=0)||(month>12))
{
return false;
}
if((day<=0)||(day>31))
{
return false;
}
if((hour<0)||(hour>24))
{
return false;
}
if((minute<0)||(minute>60))
{
return false;
}
if((second<0)||(second>60))
{
return false;
}
//当 年、月、日都有效时。
Calendar calendar = Calendar.getInstance();
// 当 Calendar 处于 non-lenient 模式时,如果其日历字段中存在任何不一致性,它都会抛出一个异常。
calendar.setLenient(false);
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month-1);
calendar.set(Calendar.DATE, day);
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);
calendar.set(Calendar.SECOND, second);
// 如果日期错误,执行该语句,必定抛出异常.
calendar.get(Calendar.YEAR);
} catch (IllegalArgumentException e) {
e.printStackTrace();
return false;
}
return true;
}
/**
* 日期转化为字符串,如2007年1月2日 转为 2007010203
* @param year
* @param month
* @param day
* @return String 2007010203
*/
public final static String praseDateToString(int year,int month,int day)
{
return String.format("%04d",year)+ String.format("%02d",month) + String.format("%02d",day);
}
/**
* 日期转化为字符串,如2007年1月2日3时4分5秒 转为 20070102030405
* @param year
* @param month
* @param day
* @param hour
* @param minute
* @param second
* @return String 20070102030405
*/
public final static String praseDateToString(int year,int month,int day,int hour,int minute,int second)
{
return String.format("%04d",year)+ String.format("%02d",month) + String.format("%02d",day) + String.format("%02d",hour) + String.format("%02d",minute) + String.format("%02d",second);
}
/**
* 日期转化为格式化字符串,如2007年1月2日3时4分5秒 转为 2007-01-02 03:04:05
* @param year
* @param month
* @param day
* @param hour
* @param minute
* @param second
* @return String 2007-01-02 03:04:05
*/
public final static String praseDateToStringFormat(int year,int month,int day,int hour,int minute,int second)
{
return String.format("%04d",year) + "-" + String.format("%02d",month) + "-" + String.format("%02d",day) + " " + String.format("%02d",hour) + ":" + String.format("%02d",minute) + ":" + String.format("%02d",second);
}
/**
* 日期转化为整数,如2007年1月2日 转为 2007010203
* @param year
* @param month
* @param day
* @return long 2007010203
*/
public final static long praseDateToLong(int year,int month,int day)
{
return Long.parseLong(String.format("%04d",year)+ String.format("%02d",month) + String.format("%02d",day));
}
/**
* 日期转化为整数,如2007年1月2日3时4分5秒 转为 20070102030405
* @param year
* @param month
* @param day
* @param hour
* @param minute
* @param second
* @return long 20070102030405
*/
public final static Long praseDateToLong(int year,int month,int day,int hour,int minute,int second)
{
return Long.parseLong(String.format("%04d",year)+ String.format("%02d",month) + String.format("%02d",day) + String.format("%02d",hour) + String.format("%02d",minute) + String.format("%02d",second));
}
/**
* <pre>
* 取现在时间
* 返回整数数组 {YYYY,MM,DD,HH,MM,SS}
* 如:{2007,07,04,10,36,01}
* </pre>
*/
public final static int[] getIntDateNow() {
int[] intNow = new int[6];
try {
Calendar calendar = Calendar.getInstance();
// 当 Calendar 处于 non-lenient 模式时,如果其日历字段中存在任何不一致性,它都会抛出一个异常。
//calendar.setLenient(false);
// 如果日期错误,执行该语句,必定抛出异常.
intNow[0] = calendar.get(Calendar.YEAR);
intNow[1] = calendar.get(Calendar.MONTH)+1;
intNow[2] = calendar.get(Calendar.DAY_OF_MONTH);
intNow[3] = calendar.get(Calendar.HOUR_OF_DAY);
intNow[4] = calendar.get(Calendar.MINUTE);
intNow[5] = calendar.get(Calendar.SECOND);
} catch (IllegalArgumentException e) {
for(int i = 0;i<6; i++)
intNow[i] = 0;
}
return intNow;
}
/**
* <pre>
* 取现在时间
* 返回字符串 YYYYMMDDHHMMSS
* 如:20070102030405
* </pre>
*/
public final static String getStringDateNow() {
int[] intNow = getIntDateNow();
return praseDateToString(intNow[0],intNow[1],intNow[2],intNow[3],intNow[4],intNow[5]);
}
/**
* <pre>
* 取现在时间
* 返回格式化字符串 YYYY-MM-DD HH:MM:SS
* 如:2007-01-02 03:04:05
* </pre>
*/
public final static String getStringDateNowFormat() {
int[] intNow = getIntDateNow();
return praseDateToStringFormat(intNow[0],intNow[1],intNow[2],intNow[3],intNow[4],intNow[5]);
}
/**
* <pre>
* 取现在时间
* 返回Long YYYYMMDDHHMMSS
* 如:20070102030405
* </pre>
*/
public final static long getLongDateNow() {
int[] intNow = getIntDateNow();
return praseDateToLong(intNow[0],intNow[1],intNow[2],intNow[3],intNow[4],intNow[5]);
}
}
分享到:
相关推荐
### Java日期处理大全:掌握时间的艺术 在Java编程中,日期和时间的处理是不可或缺的一部分,尤其是在涉及到数据记录、时间戳、定时任务等场景时。本文将深入探讨Java中的日期处理技术,涵盖从基础到进阶的各种技巧...
java日期处理
java中关于日期处理的总结,包含各种日期格式之间的转java.util.Date(已经不提倡使用,该类的方法比较少) java.util.Calendar(抽象类) java.util.GregorianCalendar(是Calendar的子类,日期处理时候经常使用该类)****...
基本涵盖了各种场景的日期处理需要,包括时间类型转换,获取N天前后,月初月末,某段时间按天拆分等功能,欢迎使用。
### Java日期处理方法 在Java开发中,对日期与时间的操作是极其常见且重要的一个环节。无论是处理用户的出生年月日、注册日期还是订单的创建时间等,都需要使用到Java提供的日期类进行处理。本文将深入探讨Java中的...
这篇博客"常用代码:java日期处理"很可能包含了关于如何在Java中有效地处理日期的实用示例和方法。这里我们将深入探讨Java日期处理的核心概念、API和最佳实践。 1. **Java日期API的发展历程** - Java 1.0引入了`...
DateHandler.java日期处理类Java文件下载,有些功能很不错哦,比如计算是否是季度末、计算从现在开始几天后的时间、得到当前时间,用于文件名,使用yyyyMMddHHmmss格式、比较日期,与现在-N天的日期对比、比较日期,...
自己整理的Java日期处理类 。包含获取两个之间段之间的天数、月初日期,月末日期、一个时间段之间的所有的日期,月份 一周的第一天,最后一天、 当前是周几等。仅供参考
在Java中,日期处理是一项常见的任务,涉及到多个类和方法。本篇文章主要总结了Java中关于日期处理的基础知识,包括`java.util.Calendar`,`java.util.GregorianCalendar`以及`java.util.Date`这三个核心类。 首先...
java 日期处理工具类
以下是一些关于Java日期处理的关键知识点,这些知识点在给定的文件中有所提及: 1. **获取当前日期**: Java通过`java.util.Date`类可以获取服务器上的当前日期。创建一个Date对象即会返回当前系统时间,如`Date ...
根据给定的文件标题、描述、标签以及部分内容,我们可以总结出以下有关 Java 日期处理的知识点: ### 1. 导入必要的包 在 Java 中处理日期时,我们需要导入一些必要的包来支持日期时间的格式化、解析等功能。示例...
在Java编程中,日期处理是常见的任务之一,用于管理和计算日期和时间。Java提供了多种类和方法来处理日期,如`Date`、`SimpleDateFormat`和`Calendar`。以下是关于这些类和方法的详细说明: 1. **`java.util.Date`*...
第一部分关于JAVA的Date (参考关于JAVA的Date总结) 第二部分Date工具类(参考一个总结好的很好的关于JAVA的Date工具类)
在Java编程中,日期处理是常见的任务之一,用于管理和计算日期和时间。本文将深入探讨Java中的日期处理机制,特别是围绕`java.util.Date`和`java.util.Calendar`这两个核心类。 首先,`java.util.Date`类是Java中...
1. **Java日期处理**: - `java.time`包:Java 8引入的新时间日期API,提供了`LocalDate`, `LocalTime`, `LocalDateTime`等类,它们提供了丰富的日期和时间操作功能。 - `SimpleDateFormat`:旧版日期格式化工具,...