java 日期类

本贴最后更新于 704 天前,其中的信息可能已经时异事殊

Date

包路径:package java.util

public class Date
    implements java.io.Serializable, Cloneable, Comparable<Date>

常用构造方法

//源码中传入了系统当前时间
public Date() {        
    this(System.currentTimeMillis());    
}

  //指定时间戳  Date(System.currentTimeMillis) 相当于Date()
public Date(long date) {
    fastTime = date;    
}

已废弃构造方法(Deprecated)


@Deprecated   
public Date(int year, int month, int date) {      
    this(year, month, date, 0, 0, 0); 
}

@Deprecated   
public Date(int year, int month, int date, int hrs, int min) {      
    this(year, month, date, hrs, min, 0);
}

@Deprecated
public Date(int year, int month, int date, int hrs, int min, int sec) 

常用方法

方法 描述
boolean after(Date when) 判断此日期是否在指定日期之后
boolean before(Date when) 判断此日期是否在指定日期之前
int compareTo(Date anotherDate) 比较两个日期的顺序
boolean equals(Object obj) 比较两个日期的相等性
long getTime() 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来,此 Date 对象表示的毫秒数
String toString() 把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy。 其中 dow 是一周中的某一天(Sun、Mon、Tue、Wed、Thu、Fri 及 Sat)

simpleDateFormat

public class SimpleDateFormat extends DateFormat

简介

SimpleDateFormat 是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。它允许格式化(日期文本),解析(文本日期)和归一化。

也就是将 Date 类型 转换为我们想要的以字符串形式输出日期格式。

日常使用

将字符串转化为日期
public void test1() throws ParseException {
    
    String s = "2020-01-01";        
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date parse = sdf.parse(s);
    System.out.println(parse);
    
}

结果:Wed Jan 01 00:00:00 CST 2020

将日期格式化成字符串
    @Test
    public void test2(){
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        String format = sdf.format(date);
        System.out.println(format);

    }

结果:2022-11-18 03:34:19

时区设置
   @Test
    public void test2(){
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        
        sdf.setTimeZone(TimeZone.getTimeZone("CTT")); //"CTT"等价于"Asia/Shanghai" x
        
        String format = sdf.format(date);
        System.out.println(format);

    }

字符对应关系

字符 表示的意义 格式 例子
G Era designator Text AD(公元)
y Year Year 1992(yyyy);92(yy)
Y Week year Year 2009;09
M Month in year(context sensitive) Month July;Jul;07
L Month in year(standalone form) Month July;Jul;07
w Week in year Number 27
W Week in month Number 2
D Day in year Number 189
d Day in month Number 10
F Day of week in month Number 2
E Day name in week Text Tuesday; Tue
u Day number of week(1=Monday) Number 1
a Am/pm marker Number PM
H Hour in day(0-23) Number 0
k Hour in day(1-24) Number 24
K Hour in am/pm(0-11) Number 0
h Hour in am/pm(1-12) Number 12
m Minute in hour Number 30
s Second in minute Number 55
S Millisecond Number 978
z Time zone General time Pacific Standard Time;PST;GMT-08:00
Z Time zone RFC 822 time -0800
X Time zone ISO 8601 time zone -08;-0800;-08:00
  • **Y :Y 表示 week in year 西方 12 月 26 日表示新年的第一天(圣诞节后一天)已经算是新的一年了 **

构造方法

SimpleDateFormat(String pattern)   //构造时指定一个格式
    
SimpleDateFormat(String pattern, Locale locale)  //构造一个 SimpleDateFormat使用给定的模式和给定的区域设置的默认日期格式符号。 
    
SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols) //使用给定的模式和日期格式符号构造一个 SimpleDateFormat 。 

常用方法

format //将给定的 Date 成日期/时间字符串,并将结果附加到给定的 StringBuffer

public StringBuffer format(Date date,
                           StringBuffer toAppendTo,
                           FieldPosition pos)
/**   
参数 
    date - 要格式化为日期时间字符串的日期时间值。 
    toAppendTo - 要附加新的日期时间文本。 
    pos - 格式化位置。 在输入:对齐字段,如果需要。 输出:对齐字段的偏移量。 
结果 
	格式化的日期时间字符串。 
**/

parse // 从字符串中解析文本以产生一个 Date

public Date parse(String text,
                  ParsePosition pos)
/**
参数 
text - A String ,其中一部分应解析。 
pos - 具有 ParsePosition的索引和错误索引信息的 ParsePosition对象。 
结果 
一个Date从字符串中解析出来。 万一出错,返回null。 
**/

该方法尝试从 pos 给出的索引开始解析文本。 如果解析成功,那么 pos 的索引将在使用最后一个字符之后更新为索引(解析不一定使用字符串末尾的所有字符),并返回解析的日期。 更新的 pos 可用于指示下一次调用此方法的起始点。 如果发生错误,则 pos 的索引不改变, pos 的错误索引设置为发生错误的 pos 的索引,返回 null。

这个解析操作使用calendar来生成一个 Date 。 在解析之前,所有 calendar 的日期时间字段为 cleared ,日期时间字段的默认值为 calendar 用于任何缺少的日期时间信息。 例如,被分析的年份值 Date 是 1970 年GregorianCalendar如果没有年份值从解析操作说明。 所述 TimeZone 值可以根据给定的模式和在时区值被覆盖, text 。 任何 TimeZone 先前已通过调用设定值setTimeZone可能需要恢复的进一步行动。

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3190 引用 • 8214 回帖 • 1 关注
  • 日期
    4 引用 • 4 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...