Java的时间和日期的运用

Java的日期类型

Date now=new Date(;//懦建一倜日期封象,默配封装系统营前时
system. out.print1n(now) ;
/ /指定年月口构建日期对象,需要注意参致规则
Date d1=new Date(2000-1900,2-1,3);//参数分别是year、month、date,注意传入年-1900,月份-1
system.out.println(d1);
//日期类型对象中并不是直接封装年月日具体值,而是存储了一个1970-1-1 0:0:0到指定曰期的毫秒值
long 11=now.getTime(;//获取毫秒值'
system.out.print1n(11);
//日期中的减法 now-dl;
long s1=now.getTime(-d1.getTime(;//两个日期之间的天数差
system.out.print1n(s1/1000/60/60/24);
//日期对象中提供了获取年月日时分秒的方法
system.out.print1n(now. getYear(+1900) ;//年份system.out.print1n(now.getMonth+1);l/月份
system.out.print1n(now. getDate();//日期
syetem. out - print1n(nnw . getDayO);//星期
system.out. print1n(now. getHours();//小时
system.out.print1n(now. getmMinutes();//分钟
system.out. print1n(now. getseconds();//秒

. Calendar: getInstance(). set(). get(). add(.gettime(). setTime(Date)
java.util.Date是java.sqIDate,Time,Timestamp的父类,Java中的时间使用标准类库的java.util.Date,其表示特定的瞬间,精确到毫秒。是用距离一个固定时间点的毫秒数(可正可负,long类型)表达一个特定的时间点。从JDK 1.1开始,应该使用Calendar类实现日期和时间字段之间转换,使用DateFormat类来格式化和分析日期字符串。因为Date的设计具有"千年虫"“以及”“时区”"的问题,所以Date中的大部分方法已经不建议使用了,它们都被java.util.Calendar类所取代

时间日期格式化

DateFormat
是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并分析日期或时间。日期/时间格式化子类(如SimpleDateFormat)允许进行格式化(日期>文本)、分析(文本->日期)和标准化。将日期表示为Date对象,或者表示为从GMT(格林尼治标准时间)1970年1月1日00:00:00这一刻开始的毫秒数。不过DateFormat的格式化Date的功能有限,没有SimpleDateFormat强大;但DateFormat是SimpleDateFormat的父类。
格式化字母代表含义

G 纪元标记 AD

y 四位年份 2001

M 月份 July or 07

d 一个月的日期 10

h A.M./P.M. (1~12)格式小时 12

H 一天中的小时 (0~23) 22

m 分钟数 30

s 秒数 55

S 微妙数 234

E 星期几 Tuesday

D 一年中的日子 360

F 一个月中第几周的周几 2 (second Wed. in July)

w 一年中第几周 40

W 一个月中第几周 1

a A.M./P.M. 标记 PM

k 一天中的小时(1~24) 24

K A.M./P.M. (0~11)格式小时 10

z 时区 Eastern Standard Time

’ 文字定界符 Delimiter

" 单引号 `

使用printf格式化日期

package demo;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.sql.*;

public class timeday {
	public static void main(String args[]) throws Exception {

		Calendar c = Calendar.getInstance();
		Date da = new Date(2000-1900, 10-1, 10);

		SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");
				
		SimpleDateFormat s1 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss ");
		
		SimpleDateFormat sd = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss G纪元 一年第D天  一个月的第d天 h点  "
				+"\n"+ "S微妙 E(星期几) 一年中第w周 一个月第的W周 a  一天的第k个小时 一天的第K个小时 z时区" );
		String date = sd.format(c.getTime());

		System.out.println(s.format(da.getTime()));
		
		System.out.println(s1.format(da));
		
		System.out.println(date);

	}
}


在这里插入图片描述

SimpleDateFormat
是一个以与语言环境相关的方式来格式化和分析日期的具体类。SimpleDateFormat使得可以选择任何用户定义的日期-时间格式的模式。但是,仍然建议通过 DateFormat 中的

getTimeInstance. getDateInstance或getDateTimeInstance 来新的创建日期-时间格式化程序。
·将Date格式化为String String format(Date d)
·将String解析为Date Date parse(String s)

java.util.Calendar
类用于封装日历信息,其主要作用在于其方法可以对时间分量进行运算。Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间1970年1月1日的00:00:00.000,格里高利历〉的偏移量。与其他语言环境敏感类一样,Calendar提供了一个类方法getInstance,以获得此类型的一个通用的对象。Calendar的getInstance方法返回一个Calendar对象,其日历字段已由当前日期和时间初始化.
Calendar.getlnstance(.getTime()
即可获取一个Date对象
Calendar.getInstance().add(时间的一个部分,正数代表加,负数代表减)获取当前时间的前一年时间

时间日期 方法调用

1 boolean after(Date date)
若当调用此方法的Date对象在指定日期之后返回true,否则返回false。

2 boolean before(Date date)
若当调用此方法的Date对象在指定日期之前返回true,否则返回false。

3 Object clone( )
返回此对象的副本。

4 int compareTo(Date date)
比较当调用此方法的Date对象和指定日期。两者相等时候返回0。调用对象在指定日期之前则返回负数。调用对象在指定日期之后则返回正数。

5 int compareTo(Object obj)
若obj是Date类型则操作等同于compareTo(Date) 。否则它抛出ClassCastException。

6 boolean equals(Object date)
当调用此方法的Date对象和指定日期相等时候返回true,否则返回false。

7 long getTime( )
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

8 int hashCode( )
返回此对象的哈希码值。

9 void setTime(long time)

用自1970年1月1日00:00:00 GMT以后time毫秒数设置时间和日期。

10 String toString( )
转换Date对象为String表示形式,并返回该字符串。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值