import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/**
* 日期转换工具
*/
public class DateUtil
{
public static final String C_DATE_DIVISION = "-";
public static final String C_TIME_PATTON_DEFAULT = "yyyy-MM-dd HH:mm:ss";
public static final String C_DATE_PATTON_DEFAULT = "yyyy-MM-dd";
public static final String C_DATA_PATTON_YYYYMMDD = "yyyyMMdd";
public static final String C_TIME_PATTON_HHMMSS = "HH:mm:ss";
public static final int C_ONE_SECOND = 1000;
public static final int C_ONE_MINUTE = 60 * C_ONE_SECOND;
public static final int C_ONE_HOUR = 60 * C_ONE_MINUTE;
public static final long C_ONE_DAY = 24 * C_ONE_HOUR;
/**
* Return the current date
*
* @return - DATE<br>
*/
public static Date getCurrentDate()
{
Calendar cal = Calendar.getInstance();
Date currDate = cal.getTime();
return currDate;
}
/**
* Return the current date string
*
* @return - 产生的日期字符串<br>
*/
public static String getCurrentDateStr()
{
Calendar cal = Calendar.getInstance();
Date currDate = cal.getTime();
return format(currDate);
}
/**
* Return the current date in the specified format
*
* @param strFormat
* @return
*/
public static String getCurrentDateStr(String strFormat)
{
Calendar cal = Calendar.getInstance();
Date currDate = cal.getTime();
return format(currDate, strFormat);
}
/**
* Parse a string and return a date value
*
* @param dateValue
* @return
* @throws Exception
*/
public static Date parseDate(String dateValue)
{
return parseDate(C_DATE_PATTON_DEFAULT, dateValue);
}
/**
* Parse a strign and return a datetime value
*
* @param dateValue
* @return
*/
public static Date parseDateTime(String dateValue)
{
return parseDate(C_TIME_PATTON_DEFAULT, dateValue);
}
/**
* Parse a string and return the date value in the specified format
*
* @param strFormat
* @param dateValue
* @return
* @throws ParseException
* @throws Exception
*/
public static Date parseDate(String strFormat, String dateValue)
{
if (dateValue == null)
return null;
if (strFormat == null)
strFormat = C_TIME_PATTON_DEFAULT;
SimpleDateFormat dateFormat = new SimpleDateFormat(strFormat);
Date newDate = null;
try
{
newDate = dateFormat.parse(dateValue);
}
catch (ParseException pe)
{
newDate = null;
}
return newDate;
}
/**
* 将Timestamp类型的日期转换为系统参数定义的格式的字符串。
* @param aTs_Datetime 需要转换的日期。
* @return 转换后符合给定格式的日期字符串
*/
public static String format(Date aTs_Datetime)
{
return format(aTs_Datetime, C_DATE_PATTON_DEFAULT);
}
/**
* 将Timestamp类型的日期转换为系统参数定义的格式的字符串。
* @param aTs_Datetime 需要转换的日期。
* @return 转换后符合给定格式的日期字符串
*/
public static String formatTime(Date aTs_Datetime)
{
return format(aTs_Datetime, C_TIME_PATTON_DEFAULT);
}
/**
* 将Date类型的日期转换为系统参数定义的格式的字符串。
* @param aTs_Datetime
* @param as_Pattern
* @return
*/
public static String format(Date aTs_Datetime, String as_Pattern)
{
if (aTs_Datetime == null || as_Pattern == null)
return null;
SimpleDateFormat dateFromat = new SimpleDateFormat();
dateFromat.applyPattern(as_Pattern);
return dateFromat.format(aTs_Datetime);
}
/**
* @param aTs_Datetime
* @param as_Format
* @return
*/
public static String formatTime(Date aTs_Datetime, String as_Format)
{
if (aTs_Datetime == null || as_Format == null)
return null;
SimpleDateFormat dateFromat = new SimpleDateFormat();
dateFromat.applyPattern(as_Format);
return dateFromat.format(aTs_Datetime);
}
public static String getFormatTime(Date dateTime)
{
return formatTime(dateTime, C_TIME_PATTON_HHMMSS);
}
/**
* @param aTs_Datetime
* @param as_Pattern
* @return
*/
public static String format(Timestamp aTs_Datetime, String as_Pattern)
{
if (aTs_Datetime == null || as_Pattern == null)
return null;
SimpleDateFormat dateFromat = new SimpleDateFormat();
dateFromat.applyPattern(as_Pattern);
return dateFromat.format(aTs_Datetime);
}
/**
* 取得指定日期N天后的日期
* @param date
* @param days
* @return
*/
public static Date addDays(Date date, int days)
{
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DAY_OF_MONTH, days);
return cal.getTime();
}
/**
* 计算两个日期之间相差的天数
* @param date1
* @param date2
* @return
*/
public static int daysBetween(Date date1,Date date2)
{
Calendar cal = Calendar.getInstance();
cal.setTime(date1);
long time1 = cal.getTimeInMillis();
cal.setTime(date2);
long time2 = cal.getTimeInMillis();
long between_days=(time2-time1)/(1000*3600*24);
return Integer.parseInt(String.valueOf(between_days));
}
/**
* 计算当前日期相对于"1977-12-01"的天数
* @param date
* @return
*/
public static long getRelativeDays(Date date)
{
Date relativeDate = DateUtil.parseDate("yyyy-MM-dd","1977-12-01");
return DateUtil.daysBetween(relativeDate,date);
}
public static Date getDateBeforTwelveMonth()
{
String date = "";
Calendar cla = Calendar.getInstance();
cla.setTime(getCurrentDate());
int year = cla.get(Calendar.YEAR) - 1;
int month = cla.get(Calendar.MONTH) + 1 ;
if (month >9 )
{
date = String.valueOf(year) + C_DATE_DIVISION + String.valueOf(month)
+ C_DATE_DIVISION + "01";
}
else
{
date = String.valueOf(year) + C_DATE_DIVISION + "0" + String.valueOf(month)
+ C_DATE_DIVISION + "01" ;
}
Date dateBefore = parseDate(date);
return dateBefore;
}
/**
* 传入时间字符串,加一天后返回Date
* @param date 时间 格式 YYYY-MM-DD
* @return
*/
public static Date addDate(String date)
{
if (date == null)
{
return null;
}
Date tempDate = parseDate(C_DATE_PATTON_DEFAULT, date);
String year = format(tempDate, "yyyy");
String month = format(tempDate, "MM");
String day = format(tempDate, "dd");
GregorianCalendar calendar =
new GregorianCalendar(Integer.parseInt(year), Integer.parseInt(month)-1, Integer.parseInt(day));
calendar.add(GregorianCalendar.DATE, 1);
return calendar.getTime();
}
public static void main(String[] args)
{
// Date date1 = DateUtil.addDays(DateUtil.getCurrentDate(),1);
// Date date2 = DateUtil.addDays(DateUtil.getCurrentDate(),101);
//
// System.out.println(DateUtil.getRelativeDays(date1));
// System.out.println(DateUtil.getRelativeDays(date2));
// Timestamp date = new Timestamp(801);
//
// System.out.println(date);
// String strDate = DateUtil.format(date, C_DATA_PATTON_YYYYMMDD);
//
// System.out.println(strDate);
String date = "2006-07-31";
System.out.println(date);
Date date2 = addDate(date);
System.out.println(date2);
}
}
分享到:
相关推荐
### Java时间操作详解 在Java中,时间操作是软件开发中的常见需求,涉及到日期和时间的解析、格式化、计算以及存储。Java提供了多种类库来处理这些需求,包括`java.util.Date`、`java.util.Calendar`、`java.time`...
### Java中的时间操作 在Java开发中,时间处理是一项非常重要的功能,特别是在涉及到日期和时间相关的应用程序中。本文将深入探讨Java中关于时间操作的基本概念和技术,并重点介绍四种常见的应用场景:获取当前时间...
java中常用的时间操作;如日期,时间戳,日历,字符串相互转化;时间差等常用日期功能。
在上述提供的代码段中,我们可以看到几个关于Java时间处理的关键知识点。这些方法主要用于获取当前时间,格式化时间字符串,以及将字符串转换为日期对象。 1. **日期对象创建与获取**:`java.util.Date` 类是Java中...
JAVA 时间 操作 时间JAVA 时间 操作 时间JAVA 时间 操作 时间JAVA 时间 操作 时间JAVA 时间 操作 时间JAVA 时间 操作 时间JAVA 时间 操作 时间JAVA 时间 操作 时间
为了解决这个问题,社区开发了Joda-Time库,它提供了更为强大且易用的日期时间操作功能。"操作日期的java包"即指的是Joda-Time这个第三方库。 Joda-Time是Java领域广泛使用的日期时间处理库,它的设计目标是替代...
在Java编程语言中,时间操作是一项关键功能,用于处理日期、时间和时区相关的任务。Java提供了多种类库来处理时间,这些类库随着时间的推移不断进化,从早期的`java.util.Date`和`java.util.Calendar`到更现代的`...
在Java中,虽然操作系统级别的时间片调度是由底层操作系统实现的,但Java虚拟机(JVM)对此有所配合,通过线程调度来模拟时间片的效果。Java的`Thread`类是进行多线程操作的基础,线程的调度策略包括:抢占式调度、...
java时间操作以及转换,sql时间操作以及转换,json案例。js,css等
10. **性能优化**:针对Java时间操作进行了性能优化,以提高代码运行效率。 在压缩包中的`xk-time-3.2.4`文件很可能是库的JAR文件,可以直接在Java项目中引入作为依赖使用。而`说明.htm`文件则可能包含了详细的使用...
在上述代码中,`getNowDate()`和`getNowDateShort()`方法中虽然没有直接使用`Calendar`,但可以很容易地通过`Calendar.getInstance()`获取一个`Calendar`实例,然后进行进一步的日期时间操作。 Java 8引入了`java....
java时间操作工具类,已封装好,包含获取某一时间的年,月,日,星期。以及对某一时间进行年,月,日,周的加减。还有获取某一时间年,月,日,周的起始和结束时间等等
1. **时间戳**:记录操作开始和结束的时间戳,以便了解操作的持续时间。 2. **资源消耗**:如果可能,记录操作过程中内存、CPU或其他资源的使用情况。 3. **状态变化**:记录操作前后的对象状态,比如数据库记录的...
在Java编程中,时间监听是一项重要的任务,它允许程序对系统时间的变化进行反应或执行特定操作。这通常通过注册监听器来实现,监听器是一种回调机制,当特定事件发生时,它会被调用。在Java中,我们可以使用`java....
详细介绍了Java8日期时间相关的api,列举了一些常用的方法,包含java.time、java.time.temporal、java.time.format包下的类和接口操作
在提供的`TimeFormat.java`文件中,可能包含了对这些类的封装和扩展,以提供更加便捷的日期时间操作。例如,可能会有以下功能: 1. 格式化日期时间:提供一个静态方法,接收一个`Date`对象和格式模板字符串,返回...
这篇博客“转 Java校正电脑时间(java 时间同步)”主要探讨了如何在Java中实现这一功能。 首先,Java中的日期和时间API包括`java.util.Date`、`java.util.Calendar`,以及从Java 8开始引入的更现代的`java.time`包。...
总之,理解和熟练掌握Java的日期时间操作对于开发人员来说至关重要,无论是在处理用户输入、记录日志还是进行复杂的业务逻辑计算中,都可能需要用到这些功能。通过学习和实践,你可以编写出更加高效和易维护的代码。
- `java.util.Calendar`:这是`Date`的增强版,提供了更丰富的日期和时间操作功能,如增加、减少时间单位等。 - `java.time`包:Java 8引入的全新日期和时间API,包括`Year`, `Month`, `DayOfWeek`等枚举类型,...
### Java 判断时间大小知识点详解 #### 一、前言 ...而利用`Calendar`则可以更加方便地进行日期时间的比较和操作。这些技巧对于处理涉及时间的应用程序非常有用,能够帮助开发者高效地解决实际问题。