`
MouseLearnJava
  • 浏览: 467435 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

记录几个日期处理的小方法

    博客分类:
  • Java
阅读更多
记录几个日期处理的小方法

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
0
2
分享到:
评论

相关推荐

    sql 日期处理常用方法

    本文将详细介绍SQL中日期处理的常用方法,包括获取当前系统时间、日期加减运算、计算日期差、提取日期部分、转换日期格式等功能。 ### 一、获取当前系统时间 在SQL Server中,`GETDATE()`函数用于返回当前的系统...

    水处理设备运行数据记录表(表格模板、DOC格式).doc

    水处理设备运行数据记录表主要由以下几个部分组成: 1. 水处理设备运行数据记录表编号:每个水处理设备都有唯一的编号,以便于记录和追踪设备的运行情况。 2. 日期时段:记录设备的运行日期和时间,以便于追踪设备...

    日期时间处理类需要处理的时间和日期的转换

    Python中提供了几个内置的库用于处理日期和时间,包括`date`、`time`和`datetime`。这三个模块分别提供了不同的功能,但它们协同工作,帮助开发者有效地操作日期和时间。 首先,`date`模块主要处理日期相关的操作。...

    java日期处理大全

    ### Java日期处理大全:掌握时间的艺术 在Java编程中,日期和时间的处理是不可或缺的一部分,尤其是在涉及到数据记录、时间戳、定时任务等场景时。本文将深入探讨Java中的日期处理技术,涵盖从基础到进阶的各种技巧...

    地基处理记录表.doc

    这个表格通常包括以下几个关键部分: 1. **编号**:每个地基处理项目都有一个唯一的编号,便于管理和追踪处理过程。 2. **工程名称**:明确标识所处的工程项目,方便与其它项目区分。 3. **施工单位**:负责地基...

    Java中日期处理的代码

    通过以上分析可以看出,示例代码涵盖了 Java 日期处理的基本功能,包括日期格式的定义、日期与字符串之间的转换以及对日期进行操作的方法。这些知识点对于开发人员来说是非常实用的,能够帮助他们在实际项目中高效地...

    信息系统故障处理记录单.doc

    这份记录单通常包括以下几个关键部分: 1. **时间**:记录故障发生的具体时间,有助于追踪故障的实时性,对于分析故障模式和频率至关重要。 2. **处理人员**:填写处理故障的技术人员,便于责任分配和后续的沟通...

    java中计算两个日期相差几天

    ### Java中计算两个日期相差几天 在Java编程中,经常需要...总之,掌握如何在Java中计算两个日期相差几天是非常有用的技能,它不仅能够帮助开发者更高效地处理日期相关的业务逻辑,还能提升程序的实用性和用户体验。

    数据库oracle中日期处理

    Oracle提供了丰富的函数和操作符来处理日期,使得我们可以轻松地完成诸如计算星期几、两个日期之间的天数等常见需求。以下是一些关于Oracle日期处理的关键知识点: 1. **日期数据类型**: Oracle数据库中的日期...

    delphi 日期查询处理

    例如,如果要查询某个日期之前的记录,那么这个日期必须按照 SQL 所支持的格式(如 'YYYY-MM-DD' 或 '#YYYY-MM-DD#')进行格式化。 2. **SQL 查询语句构造**:构造正确的 SQL 查询语句是日期查询成功的关键。这包括...

    获取指定两个日期之间的所以日期

    标题中提到的知识点是“获取指定两个日期之间的所有日期”。在编程中,特别是使用Java语言时,这样的需求非常普遍,尤其是在数据库操作、日志记录、报表生成等场景中经常需要计算两个日期间的天数或者日期列表。 ...

    SqlServer日期处理函数

    本文档将详细介绍几个常用的日期处理函数及其应用场景,并通过具体实例加深理解。 #### 常用日期处理函数 1. **获取一个月的第一天** - 函数:`DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0)` - 描述:此函数返回...

    Java日期常用操作方法工具类

    `Date`类有几个核心的方法,如`getTime()`返回以毫秒为单位的Unix时间戳,`toString()`将日期转换为字符串格式。 然而,`SimpleDateFormat`类常用于日期的格式化和解析。它可以自定义日期和时间的显示格式,例如`...

    比较两个日期相差多少秒的几种方法

    在编程中,经常需要处理日期和时间,包括比较两个日期之间的差距。这个任务可以用于记录事件发生的时间间隔,计算年龄,或者在各种时间相关的算法中。以下是对标题和描述中提到的四种方法的详细解释: 1. **...

    日期类数据处理程序实现日期加减

    日期类的设计通常包含以下几个关键部分: 1. **数据成员**:定义年、月、日的私有变量,如`int year`, `int month`, 和`int day`。确保月份范围在1到12之间,天数根据月份调整在1到31之间(考虑到二月的特殊性)。 ...

    敬老院废弃物处置记录表(养老院、养老机构、疗养院适用表格).docx

    - **多行记录**:每个日期下方对应多行空白记录项,以适应不同种类废弃物的记录需求。 - **标准化模板**:提供了一套标准化的记录模板,方便不同机构之间共享和交流信息。 ### 三、废弃物处置的重要性 对于养老院...

    根据任意输入的日期,得出星期几(2KB)...

    VB提供了丰富的函数和方法来处理日期和时间,例如Date函数用于返回当前日期,Now函数获取当前日期和时间,以及Weekday函数,它是这个项目的核心。Weekday函数接收一个日期作为参数,并返回一个整数,表示该日期是一...

    SQL Server 查询两个日期之间的所有月份

    对于大数据量,更高效的方法可能包括创建一个日期维度表,其中包含预计算的日期范围,这将提供更快的查询性能。 总结来说,SQL Server查询两个日期之间的所有月份可以通过动态生成的SQL语句和日期函数来实现,这在...

    几个效果不错的日期和时间Demo

    本示例提供的"几个效果不错的日期和时间Demo",显然是一些经过实际测试的代码片段或小项目,它们能够帮助开发者更便捷、高效地处理日期和时间。下面,我们将深入探讨这些知识点。 首先,我们要理解“效果不错”可能...

    SQLServer几个比较实用的方法

    在SQL Server中,数据库操作经常会遇到各种挑战,本文将分享几个实用的方法,这些方法在实际开发过程中具有很高的价值。首先,我们来看如何利用SQL创建自定义函数以达到特定的查询效果。 一、创建函数合并重复行 在...

Global site tag (gtag.js) - Google Analytics