记录几个日期处理的小方法
1. 不同日期格式之间的转化
2. 计算两个日期相差的天数
......
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public final class DateUtil {
private static final long MILLISECONDS_PER_DAY = 1L * 24 * 60 * 60 * 1000;
private static final String DATE_FORMAT_YYYYMMDD = "yyyy-MM-dd";
private static final String DATE_FORMAT_YYYYMMDDHHMMSS = "yyyy-MM-dd HH:mm:ss";
private static final SimpleDateFormat df1 = new SimpleDateFormat(
DATE_FORMAT_YYYYMMDD);
private static final SimpleDateFormat df2 = new SimpleDateFormat(
DATE_FORMAT_YYYYMMDDHHMMSS);
private DateUtil() {
}
/**
* 根据给定的源日期的字符串内容和日期格式,返回一个以目标日期格式的字符串内容。
*
* @param targetFormat
* 目标日期的格式
* @param sourceFormat
* 源日期的格式
* @param sourceDateString
* 源日期的字符串内容
* @return the string
* @throws ParseException
*/
public static String formatDateString(String targetFormat,
String sourceFormat, String sourceDateString) {
try {
return new SimpleDateFormat(targetFormat)
.format(new SimpleDateFormat(sourceFormat)
.parse(sourceDateString));
} catch (ParseException e) {
// TODO
return null;
}
}
/**
* 返回两个日期相差的天数
*/
public static int getDiffInDays(Date startDate, Date endDate) {
return (int) ((endDate.getTime() - startDate.getTime()) / MILLISECONDS_PER_DAY);
}
public static boolean isFutureDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.after(Calendar.getInstance());
}
public static boolean isPastDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.before(Calendar.getInstance());
}
public static Date now() {
return new Date();
}
public static Date addDay(Date date, int days) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_YEAR, days);
return calendar.getTime();
}
public static Date addMonth(Date date, int months) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH, months);
return calendar.getTime();
}
public static Date addYear(Date date, int years) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.YEAR, years);
return calendar.getTime();
}
public static String formatToYYYYMMDD(Date date) {
return df1.format(date);
}
public static String formatToYYYYMMDDHHMMSS(Date date) {
return df2.format(date);
}
public static String getFormatDateTime(Date date, String format) {
DateFormat df = new SimpleDateFormat(format);
return df.format(date);
}
public static boolean isLeapYear(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return isLeapYear(cal.get(Calendar.YEAR));
}
public static boolean isLeapYear(int year) {
GregorianCalendar calendar = new GregorianCalendar();
return calendar.isLeapYear(year);
}
}
测试代码
import java.util.Date;
public class Test {
public static void main(String[] args) {
Date date = new Date();
System.out.println(DateUtil.formatToYYYYMMDD(date));
System.out.println(DateUtil.formatToYYYYMMDDHHMMSS(date));
System.out.println(DateUtil.formatDateString("yyyy-MM-dd",
"MM/dd/yyyy", "06/30/2013"));
}
}
测试输出结果如下:
2013-07-02
2013-07-02 12:33:27
2013-06-30
分享到:
相关推荐
本文将详细介绍SQL中日期处理的常用方法,包括获取当前系统时间、日期加减运算、计算日期差、提取日期部分、转换日期格式等功能。 ### 一、获取当前系统时间 在SQL Server中,`GETDATE()`函数用于返回当前的系统...
水处理设备运行数据记录表主要由以下几个部分组成: 1. 水处理设备运行数据记录表编号:每个水处理设备都有唯一的编号,以便于记录和追踪设备的运行情况。 2. 日期时段:记录设备的运行日期和时间,以便于追踪设备...
Python中提供了几个内置的库用于处理日期和时间,包括`date`、`time`和`datetime`。这三个模块分别提供了不同的功能,但它们协同工作,帮助开发者有效地操作日期和时间。 首先,`date`模块主要处理日期相关的操作。...
### Java日期处理大全:掌握时间的艺术 在Java编程中,日期和时间的处理是不可或缺的一部分,尤其是在涉及到数据记录、时间戳、定时任务等场景时。本文将深入探讨Java中的日期处理技术,涵盖从基础到进阶的各种技巧...
这份记录单通常包括以下几个关键部分: 1. **时间**:记录故障发生的具体时间,有助于追踪故障的实时性,对于分析故障模式和频率至关重要。 2. **处理人员**:填写处理故障的技术人员,便于责任分配和后续的沟通...
这个表格通常包括以下几个关键部分: 1. **编号**:每个地基处理项目都有一个唯一的编号,便于管理和追踪处理过程。 2. **工程名称**:明确标识所处的工程项目,方便与其它项目区分。 3. **施工单位**:负责地基...
通过以上分析可以看出,示例代码涵盖了 Java 日期处理的基本功能,包括日期格式的定义、日期与字符串之间的转换以及对日期进行操作的方法。这些知识点对于开发人员来说是非常实用的,能够帮助他们在实际项目中高效地...
### Java中计算两个日期相差几天 在Java编程中,经常需要...总之,掌握如何在Java中计算两个日期相差几天是非常有用的技能,它不仅能够帮助开发者更高效地处理日期相关的业务逻辑,还能提升程序的实用性和用户体验。
Oracle提供了丰富的函数和操作符来处理日期,使得我们可以轻松地完成诸如计算星期几、两个日期之间的天数等常见需求。以下是一些关于Oracle日期处理的关键知识点: 1. **日期数据类型**: Oracle数据库中的日期...
例如,如果要查询某个日期之前的记录,那么这个日期必须按照 SQL 所支持的格式(如 'YYYY-MM-DD' 或 '#YYYY-MM-DD#')进行格式化。 2. **SQL 查询语句构造**:构造正确的 SQL 查询语句是日期查询成功的关键。这包括...
标题中提到的知识点是“获取指定两个日期之间的所有日期”。在编程中,特别是使用Java语言时,这样的需求非常普遍,尤其是在数据库操作、日志记录、报表生成等场景中经常需要计算两个日期间的天数或者日期列表。 ...
本文档将详细介绍几个常用的日期处理函数及其应用场景,并通过具体实例加深理解。 #### 常用日期处理函数 1. **获取一个月的第一天** - 函数:`DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0)` - 描述:此函数返回...
`Date`类有几个核心的方法,如`getTime()`返回以毫秒为单位的Unix时间戳,`toString()`将日期转换为字符串格式。 然而,`SimpleDateFormat`类常用于日期的格式化和解析。它可以自定义日期和时间的显示格式,例如`...
在编程中,经常需要处理日期和时间,包括比较两个日期之间的差距。这个任务可以用于记录事件发生的时间间隔,计算年龄,或者在各种时间相关的算法中。以下是对标题和描述中提到的四种方法的详细解释: 1. **...
文档“过失·问题处理记录表.doc”是一个用于记录和分析工作中出现的问题及处理方法的工具,主要用于提高工作效率,防止类似问题再次发生。这个表格包含了以下几个关键部分: 1. **姓名**:记录出现问题的员工姓名...
日期类的设计通常包含以下几个关键部分: 1. **数据成员**:定义年、月、日的私有变量,如`int year`, `int month`, 和`int day`。确保月份范围在1到12之间,天数根据月份调整在1到31之间(考虑到二月的特殊性)。 ...
VB提供了丰富的函数和方法来处理日期和时间,例如Date函数用于返回当前日期,Now函数获取当前日期和时间,以及Weekday函数,它是这个项目的核心。Weekday函数接收一个日期作为参数,并返回一个整数,表示该日期是一...
对于大数据量,更高效的方法可能包括创建一个日期维度表,其中包含预计算的日期范围,这将提供更快的查询性能。 总结来说,SQL Server查询两个日期之间的所有月份可以通过动态生成的SQL语句和日期函数来实现,这在...
本示例提供的"几个效果不错的日期和时间Demo",显然是一些经过实际测试的代码片段或小项目,它们能够帮助开发者更便捷、高效地处理日期和时间。下面,我们将深入探讨这些知识点。 首先,我们要理解“效果不错”可能...
在SQL Server中,数据库操作经常会遇到各种挑战,本文将分享几个实用的方法,这些方法在实际开发过程中具有很高的价值。首先,我们来看如何利用SQL创建自定义函数以达到特定的查询效果。 一、创建函数合并重复行 在...