java第十五天日期相关的操作

日期相关的操作

Date的使用
Calendar日历类
DateFormat类 --> SimpleDateFormat类

Date的使用

package com.openlab.day15.date;

import java.text.DateFormat;
import java.text.Format;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class TestDate {
	public static void main(String[] args) throws ParseException {
		// 获取当时时间
		Date date = new Date();
		
		System.out.println(date);//Tue Aug 17 01:35:50 CST 2021
		// 千年虫BUG事件
//		System.out.println(date.getYear());
//		System.out.println(date.getMonth() + 1);
//		System.out.println(date.getDate());
		// Date对象提供获取时间的常见方法全都已经过时了,因此不建议大家这样使用了
		
		// 获取当前时间的时间戳, 1970-01-01 00:00:00 距离当前的毫秒数
//		System.out.println(date.getTime());
		
		// java还可以通过System类获取时间戳,可以获取当前时间戳
//		System.out.println(System.currentTimeMillis());
		
		// 日期对象 --->  字符串  格式化时间
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//2021-08-17 01:37:49
//		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
		String format = sdf.format(date);
		System.out.println(format);//2021年08月17日 01时35分50秒
		
		// 字符串 ---> 日期对象		
		String strTime = "2018年10月8日 12:12:12";
		DateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
		Date date2 = sdf2.parse(strTime);
		System.out.println(date2);//Mon Oct 08 12:12:12 CST 2018
		
		
		
	}
}

Calendar日历类

package com.openlab.day15.date;

import java.util.Calendar;

public class TestCalendar {
	
	public static void main(String[] args) {
		Calendar calendar = Calendar.getInstance(); 
		
		int year = calendar.get(Calendar.YEAR);
		int month = calendar.get(Calendar.MONTH) + 1;
		int day = calendar.get(Calendar.DATE);
		int hour = calendar.get(Calendar.HOUR);
		int minute = calendar.get(Calendar.MINUTE);
		int s = calendar.get(Calendar.SECOND);
		System.out.println(year +"-"+ month +"-"+ day + " "+ hour +":"+ minute +":"+s);
		//2021-8-17 1:39:49
	}
}

DateFormat类 --> SimpleDateFormat类

format是用于日期对象转字符串
parse是用于字符串转日期对象
simpleDateFomat是用于创建一个日期格式的对象,里面要传参数,传的是java日期的可识别的标识

日期对象 --->  字符串  格式化时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//2021-08-17 01:37:49
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
String format = sdf.format(date);
System.out.println(format);//2021年08月17日 01时35分50秒

字符串 ---> 日期对象		
String strTime = "2018年10月8日 12:12:12";
DateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date date2 = sdf2.parse(strTime);
System.out.println(date2);//Mon Oct 08 12:12:12 CST 2018

JDK8 新的时间API

LocalDate
LocalTime
LocatDateTime
DateTimeFormatter
Instant
package com.openlab.day15.date;

import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

public class JDK8DateTIme {
	
	public static void main(String[] args) {
		// 本地日期
		LocalDate localDate = LocalDate.now();
		System.out.println(localDate);
		System.out.println(localDate.getDayOfMonth());
		System.out.println(localDate.getDayOfYear());
		
		// 本地时间
		LocalTime localTime = LocalTime.now();
		System.out.println(localTime);
		
		// 日期+时间的对象
		LocalDateTime dateTime = LocalDateTime.now();
		System.out.println(dateTime);
		
		// 专门用来格式化日期时间的对象
		String str = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
		System.out.println(str);
		
		// 将日期字符串解析为日期对象
		LocalDateTime ldt = LocalDateTime.parse("2000年03月08日 14:52:18", DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss"));
		System.out.println(ldt);
		
		// 伦敦标准时间,就是经度为0的,0时区时间
		Instant instant = Instant.now();
		System.out.println(instant);
		
		
		
	}
}

DateTimeFormatter和instant

日期+时间的对象
LocalDateTime dateTime = LocalDateTime.now();
System.out.println(dateTime);//2021-08-17T01:25:15.899
专门用来格式化日期时间的对象
String str = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(str);

将日期字符串解析为日期对象
LocalDateTime ldt = LocalDateTime.parse("2000年03月08日 14:52:18", DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss"));
System.out.println(ldt);

伦敦标准时间,就是经度为0的,0时区时间
Instant instant = Instant.now();
System.out.println(instant);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值