java 日期SimpleDateFormat

java 日期类

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);

    }
字符对应关系
字符表示的意义格式例子
GEra designatorTextAD(公元)
yYearYear1992(yyyy);92(yy)
YWeek yearYear2009;09
MMonth in year(context sensitive)MonthJuly;Jul;07
LMonth in year(standalone form)MonthJuly;Jul;07
wWeek in yearNumber27
WWeek in monthNumber2
DDay in yearNumber189
dDay in monthNumber10
FDay of week in monthNumber2
EDay name in weekTextTuesday; Tue
uDay number of week(1=Monday)Number1
aAm/pm markerNumberPM
HHour in day(0-23)Number0
kHour in day(1-24)Number24
KHour in am/pm(0-11)Number0
hHour in am/pm(1-12)Number12
mMinute in hourNumber30
sSecond in minuteNumber55
SMillisecondNumber978
zTime zoneGeneral timePacific Standard Time;PST;GMT-08:00
ZTime zoneRFC 822 time-0800
XTime zoneISO 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可能需要恢复的进一步行动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值