Java中日期时间用法

1、日期类

该对象内部封装了当前系统的毫秒值

从1970-1-1 0:0:0往后每过一秒,数值加1000

2,对象创建

1》无参构造方法

Date date=new Date();

封装当前操作系统的时间戳

2》带参构造方法

Date date =new Date(long milis);

封装指定时间戳

3、主要方法

1》修改对象内部时间戳

void setTime(long milis)

2>获取对象内部时间戳

long getTime()

java.text.SimpleDateFormat

1、日期格式化,可以按照指定的格式将date对象格式化为字符串,也可以将字符串解析为date对象

2、对象创建

SimpleDateFormat sdf=new SimpleDateFormat("指定格式");

yyyy:四位数年份

MM:2位数月份

dd:2位数日期

HH:0-23小时

mm:分钟

ss:秒

3、主要方法

1》按照指定格式将日期对象格式化位字符串

String fomat(Date date)

2>按指定格式将字符串解析为日期对象

Date date(String dateStr)

java.util.Calender

1、日历类,其内部主要封装日期时间进行计算的相关方法

2、对象创建

1》通过构造方法创建对象

Calendar c=new GregorianCalendar();

2》通过静态方法创建

Calendar c=Calendar.getInstance();

3、主要方法

1》get()

获取指定字段值

2》getActuaiMaxmum()

获取指定字段上最大值

3》add()

在指定字段上增加一个数值后的日期

4>setTime()

date转Calendar

5>getTime()

Calendar转Date

4,常量字段

1.>YEAR 年

2>MONTH 月

3>DAY_OF_MONTH 日

4>HOUR_OF_DAY 时

5>MINUTE 分

6>SECOND 秒

7>MILLISECONG 毫秒

8>DAY_OF_YEAR 年中天数

9>WEEK_OF_YEAR 年中星期数

10>WEEK_OF_MONTH 月中周数

11>DAY_OF_WEEK 星期

注意:

1》在系统中使用0-11来存储1-12月份,所以:我们在获取月份加1,存储月份减1

2》一周中第一天是周日,最后一天是周六;所以获取到星期之后要减一,减1为0说明是周日

存入星期要加一,周日存储1

LocalDate

1、封装日期

2、//创建日期对象

//根据当前操作系统的的日期创建对象

LocalDate date =LocalDate.now();

//最小日期

date =LocalDate.MIN;

//最大日期

date =LocalDate.MAX;

//将yyyy-MM-dd格式字符串解析为日期对象

//月和日小于10的,前面需要带0

date =LocalDate.parse("2008-12-20");

//自己指定格式,将字符串解析为日期对象

date=LocalDate.parse("2012/12/12",DateTimeFormatter.ofPattern("yyyy/MM/dd"));

//自己指定年月日

date=LocalDate.of(2008, 8, 8);

3、主要方法

1》getYear()

2>getMonthValue()

3>getDayOfMonth()

4>getDayOfYear()

5>getDayOfWeek()

LocalTime

1、主要用于当前操作系统时间的创建

2、//创建时间对象

//根据当前操作系统的的时间创建对象

LocalTime time =LocalTime.now();

//最小时间

time =LocalTime.MIN;

//最大时间

time =LocalTime.MAX;

//将HH:mm:ss格式字符串解析为时间对象

//时分秒小于10的,前面需要带0

time =LocalTime.parse("16:23:34");

//自己指定格式,将字符串解析为时间对象

time=LocalTime.parse("12/12/12",DateTimeFormatter.ofPattern("HH/mm/ss"));

//自己指定年月日

time=LocalTime.of(17,10,9);

3、主要方法

1》getHour()

2>getMinute()

3>getSecond()

4>getNano()

LocalDateTime

1、主要用于当前操作系统日期时间的创建

2、对象创建和主要方法参考上面写法

import java.util.Date;

public class Test2 {
		public static void main(String[] args) {
			//获取当前操作系统的毫秒值(时间戳)
			//从 从1970-1-1  0:0:0到当前时间之间的毫秒值
			long  t=System.currentTimeMillis();
			System.out.println("t="+t+"毫秒");
			System.out.println(t/1000/60/60/24);
			
			
			//默认封装当前操作系统的毫秒值
			Date date=new Date();
			System.out.println(date);
			
			//获取date对象中封装的毫秒值
			long t1=date.getTime();
			System.out.println("t1="+t1);
			
			//修改date对象中封装的毫秒值
			date.setTime(0);
			System.out.println("date;"+date);	
			
			//创建date对象时,自己指定其内部封装的毫秒值
			date =new Date(3*60*1000);
			System.out.println("date="+date);
			
			System.out.println(date.after(date));
	}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
/*
 * .Calender日历类
 */
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;

public class Test4 {
	//创建对象(格里高利里:公历)
		public static void main(String[] args) throws ParseException {
			Calendar c1=new GregorianCalendar();
			System.out.println(c1);
			//根据当前操作系统所在时区创建对象
			Calendar c2=Calendar.getInstance();
			System.out.println(c2);
			
			//获取年月日时分秒
			int year=c1.get(Calendar.YEAR);
			//在系统中使用0-11来存储1-12月份,
			//所以:我们在获取月份加1,存储月份减1
			int month=c1.get(Calendar.MONTH)+1;
			int day=c1.get(Calendar.DAY_OF_MONTH);
			int hour=c1.get(Calendar.HOUR_OF_DAY);
			int minute =c1.get(Calendar.MINUTE);
			int second=c1.get(Calendar.SECOND);
			int milliSecond=c1.get(Calendar.MILLISECOND);
			System.out.println("年:"+year);
			System.out.println("月:"+month);
			System.out.println("日:"+day);
			System.out.println("时:"+hour);
			System.out.println("分:"+minute);
			System.out.println("秒:"+second);
			System.out.println("毫秒:"+milliSecond);
			
			//获取一年中的第多少天
			int dayOfYear=c1.get(Calendar.DAY_OF_YEAR);
			System.out.println("年中天数:"+dayOfYear);
			//获取本周是今年第几周
			int b=c1.get(Calendar.DAY_OF_WEEK);
			System.out.println(b);
			System.err.println("=++++++++++++++");
			int a=c1.get(Calendar.DAY_OF_MONTH);
			System.out.println(a);
			int weekOfYear=c1.get(Calendar.WEEK_OF_YEAR);
			System.out.println("年中周数:"+weekOfYear);
			
			//获取本周是这个月的第几周
			int dayofYear2=c1.get((Calendar.DAY_OF_YEAR));
			System.out.println(dayofYear2);
			
			int weekOfMonth=c1.get(Calendar.WEEK_OF_MONTH);
			System.out.println("月中周数:"+weekOfMonth);

			//获取星期
			//一周中第一天是周日,最后一天是周六
			//周日 周一,周二,周三,周四,周五,周五
			//1     2     3     4      5    6     7
			//所以获取到星期之后要减一,减1为0说明是周日
			//存入星期要加一,周日存储1
			int dayWeek=c1.get(Calendar.DAY_OF_WEEK);
			System.out.println("今天是星期:"+(dayWeek-1==0?"日":dayWeek-1));
			
			//今天是本月的第几个星期几
			int n=c1.get(Calendar.DAY_OF_WEEK_IN_MONTH);
			System.out.println(n);
			
			//获取时区(CST东八区)
			System.out.println(c1.get(Calendar.ZONE_OFFSET));
			
			
			//获取指定字段上的最大值
		    //1》获取今年最大天数
			int maxDayOfYear=c1.getActualMaximum(Calendar.DAY_OF_YEAR);
			System.out.println("今年最大天数:"+maxDayOfYear);
			
			//2》获取本月最大天数
			int maxDayOfMonth=c1.getActualMaximum(Calendar.DAY_OF_MONTH);
			System.out.println("本月最大天数:"+maxDayOfMonth);
			System.out.println("+++++++++++++++");
			//1》获取今年最大星期数
			int maxWeekOfYear=c1.getActualMaximum(Calendar.WEEK_OF_YEAR);
			System.out.println("今年最大星期数:"+maxWeekOfYear);
			
			//在指定字段上增加一个数值后的日期
			//计算10000天之前日期
			//c1.add(Calendar.DAY_OF_MONTH,-100000);
			//计算100天后的日期
			c1.add(Calendar.DAY_OF_MONTH,10);
			System.out.println("年"+c1.get(Calendar.YEAR));
			System.out.println("月"+(c1.get(Calendar.MONTH)+1));
			System.out.println("日"+c1.get(Calendar.DAY_OF_MONTH));
			
			System.err.println("==================================");
			//修改日期
			//修改指定字段
			c2.set(Calendar.MONTH, Calendar.FEBRUARY);
			System.out.println("年"+c2.get(Calendar.YEAR));
			System.out.println("月"+(c2.get(Calendar.MONTH)+1));
			System.out.println("日"+c2.get(Calendar.DAY_OF_MONTH));
			
			//修改年月日
			c2.set(2010,9,15);
			System.out.println("年"+c2.get(Calendar.YEAR));
			System.out.println("月"+(c2.get(Calendar.MONTH)+1));
			System.out.println("日"+c2.get(Calendar.DAY_OF_MONTH));
			
			//修改年月日时分秒
			c2.set(2010,9,15,8,30,25);
			System.out.println("年"+c2.get(Calendar.YEAR));
			System.out.println("月"+(c2.get(Calendar.MONTH)+1));
			System.out.println("日"+c2.get(Calendar.DAY_OF_MONTH));
			
			System.out.println("==========================================");
			
			//Calendar和date之间转换
			//1》date转Calendar
			Date date=new Date();
			Calendar c3=Calendar.getInstance();
			c3.setTime(date);
			System.out.println("年"+c3.get(Calendar.YEAR));
			System.out.println("月"+(c3.get(Calendar.MONTH)+1));
			System.out.println("日"+c3.get(Calendar.DAY_OF_MONTH));
			
			//Calendar转Date
			Date d=c3.getTime();
			System.out.println("d="+d);
			System.out.println("============================================");
			
	     	}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

/*
 * .SimpleDateFormat日期格式工具类
 */
public class Test3 {
		public static void main(String[] args) throws ParseException {
			//1、将日期格式化成字符串
			//创建date日期对象,封装当前操作系统时间戳
			Date  date=new Date();
			System.out.println(date);
			//创建日期格式化类对象,并指定格式
			//格式:2020-07-14  09:41:28
			SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			//按照指定格式将date对象格式化为字符串
			String dateStr=sdf.format(date);
//			System.out.println(dateStr);
			
			//2、将字符串解析为日期对象
			//定义字符串
			String str="2008/8/8";
			//创建日期格式化转换工具对象,并指定格式
			SimpleDateFormat sd=new SimpleDateFormat("yyyy/MM/dd");
			//按照指令格式将字符串解析为date日期对象
			Date d=sd.parse(str);
			System.out.println("d="+d);
		}
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

God Zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值