当前位置 : 首页 » 文章分类 :  开发  »  Java-日期

Java-日期

[TOC]


Date

java.util.Date
public class Date extends Object implements Serializable, Cloneable, Comparable<Date>
类 Date 表示特定的瞬间,精确到毫秒。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串。Date 中的把日期解释为年、月、日、小时、分钟和秒值的方法已废弃。

构造方法

public Date()
构造方法,分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
例如:Date date = new Date(); //以当前的日期和时间作为其初始值


SimpleDateFormat

java.text.SimpleDateFormat
public class SimpleDateFormat extends DateFormat
SimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。它允许进行格式化(日期 -> 文本)、分析(文本 -> 日期)和规范化。
SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。但是,仍然建议通过 DateFormat 中的 getTimeInstance、getDateInstance 或 getDateTimeInstance 来新的创建日期-时间格式化程序。

构造方法

public SimpleDateFormat(String pattern)
用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。注:此构造方法可能不支持所有语言环境。要覆盖所有语言环境,请使用 DateFormat 类中的工厂方法。

  • 参数:pattern - 描述日期和时间格式的模式
  • 抛出:
    • NullPointerException - 如果给定的模式为 null
    • IllegalArgumentException - 如果给定的模式无效

parse()

Date parse(String text, ParsePosition pos)
解析字符串的文本,生成 Date。 此方法试图解析从 pos 给定的索引处开始的文本。

format()

StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition pos)
将给定的 Date 格式化为日期/时间字符串,并将结果添加到给定的 StringBuffer。格式为类 DateFormat 中的 format。返回格式化的日期-时间字符串。

将当前日期时间格式化为指定格式字符串

Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = sdf.format(date);

Calendar

java.util.Calendar
public abstract class Calendar extends Object implements Serializable, Cloneable, Comparable<Calendar>
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
与其他语言环境敏感类一样,Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。Calendar 的 getInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化:Calendar rightNow = Calendar.getInstance();

字段摘要

int DATE,get 和 set 的字段数字,指示一个月中的某天。它与 DAY_OF_MONTH 是同义词。一个月中第一天的值为 1。

getInstance()

public static Calendar getInstance()
使用默认时区和语言环境获得一个日历对象。返回的 Calendar已初始化为当前日期和时间,使用了默认时区和默认语言环境。
例如:Calendar rightNow = Calendar.getInstance();

setTime()

public final void setTime(Date date)
使用给定的 Date 设置此 Calendar 的时间。

getTime()

public final Date getTime()
返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

get()

int get(int field)
返回给定日历字段的值。

add()

public abstract void add(int field, int amount)
根据日历的规则,为给定的日历字段添加或减去指定的时间量。
add(f, delta) 将 delta 添加到 f 字段中。这等同于调用 set(f, get(f) + delta),但要带以下两个调整:
Add 规则 1:调用后 f 字段的值减去调用前 f 字段的值等于 delta,以字段 f 中发生的任何溢出为模。溢出发生在字段值超出其范围时,结果,下一个更大的字段会递增或递减,并将字段值调整回其范围内。
例如,要从当前日历时间减去 5 天,可以通过调用以下方法做到这一点:
add(Calendar.DAY_OF_MONTH, -5);

获取今天前n天的日期

public static Integer getNdaysBeforeNow(int n){
    Calendar cal=Calendar.getInstance();
    cal.add(Calendar.DAY_OF_MONTH, -n);
    SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
    return Integer.parseInt(sdf.format(cal.getTime()));
}

获取指定日期的下一天

输入和输出参数都是Integer

public static Integer getNextDay(Integer datein) {
    String dateinStr = Integer.toString(datein);
    SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
    java.util.Date date=null;
    try {
        date = sdf.parse(dateinStr);
    }catch(java.text.ParseException e) {
        e.printStackTrace();
    }
    Calendar cal=Calendar.getInstance();
    cal.setTime(date);
    cal.add(cal.DATE, 1); //日期加1天
    String dateoutStr = sdf.format(cal.getTime());
    return Integer.valueOf(dateoutStr);
}

上一篇 MyBatis Generator 使用笔记

下一篇 Java-集合框架基础

阅读
1,184
阅读预计5分钟
创建日期 2015-08-18
修改日期 2017-07-23
类别
标签
百度推荐