日期和时间

1、日期和时间表示

    Date和Calendar是用于处理日期和时间的类,java8中增加了Clock、Duration、Instant等一系列新的日期时间库:

package xu;
import java.time.*;

public class Test
{
	public static void main(String[] args)
	{
		//Clock:获取指定时区的现在日期、时间
		Clock clock = Clock.systemUTC();
		String str = "" + clock.instant(); //获得UTF时间:2018-06-14T01:40:05.681530500Z
		str = "" + clock.millis(); //获得UNIX时间戳,毫秒为单位:1528940676338
		
		//Duration:表示一段时间
		Duration d = Duration.ofSeconds(6000); //6000秒的时间段
		str = "" + d.toMinutes(); //6000秒转换为以分为单位的时间段:100

		Clock clock2 = Clock.offset(clock, d); //在clock的基础上增加6000秒
		
		//Instant:表示一个具体的时刻
		Instant it = Instant.now(); //获得当前时间
		str = "" + it; //2018-06-14T02:15:46.909001700Z
		Instant it2 = it.plusSeconds(6000); //增加6000秒
		Instant it3 = Instant.parse("2014-02-23T10:12:35.341Z"); //根据字符串生成Instant对象
		Instant it4 = it3.plus(Duration.ofDays(5).plusHours(1)); //在it3基础上增加5天1小时
		
		//LocalDate:表示本地日期
		LocalDate ld = LocalDate.now(); //获取当前日期
		str = "" + ld; //2018-06-14
		LocalDate ld3 = LocalDate.of(2014, Month.MAY, 21); //设为2014年5月21号
		LocalDate ld2 = LocalDate.ofYearDay(2014, 146); //获取2014年的第146天
		
		//LocalTime:表示本地时间
		LocalTime lt = LocalTime.now(); //获取当前时间
		str = "" + lt; //10:43:29.463094400
		lt = LocalTime.of(10, 30); //设为10点30分
		lt = LocalTime.ofSecondOfDay(5000); //获得一天中的第5000秒的时间
		
		//LocalDateTime:表示本地日期时间
		LocalDateTime dt = LocalDateTime.now(); //获得当前日期时间
		str = "" + dt; //2018-06-14T10:47:56.231352700
		LocalDateTime dt2 = dt.plusDays(1).plusHours(3).plusMinutes(10); //增加1天3小时10分钟
		
		//YearMonth、MonthDay、Year分别表示年月、月日、年
		Year year = Year.now(); //获取当前年份
		str = "" + year; //2018
		year = year.plusYears(10); //年份再加上10年
		
		YearMonth ym = year.atMonth(10); //月份设为10月
		ym = ym.plusYears(2).plusMonths(5); //加上2年5个月
		
		MonthDay md = MonthDay.now(); //获取当前月日
		str = "" + md; //--06-14
		md.with(Month.MAY).withDayOfMonth(23); //设为5月23日
		
		//ZoneId、ZonedDateTime分别表示时区、时区化的日期时间
		//Month、DayOfWeek是枚举类,分别表示星期和月份
		
		System.out.println(str);
		
		
		/*LocalDate date = LocalDate.now();
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy MM dd");
		String text = date.format(formatter);
		System.out.println(text);*/
		//
	}
}

2、格式化

    java中使用DateFormat、SimpleDateFormat来对日期和时间进行格式化,java8中增加了功能更强大的DateTimeFormatter类,而且它是线程安全的。

import java.time.*; 
import java.time.format.*;

public class Test
{
	public static void main(String[] args)
	{	
		//格式化字符串
		LocalDateTime date = LocalDateTime.now();
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 E a HH:mm:ss:SSS");
		String str = date.format(formatter); //等价于formatter.format(date),2018年06月15日 周五 下午 16:31:05:452
		
		//解析字符串
		str = "2014-04-12 01时06分23秒";
		formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH时mm分ss秒");
		date = LocalDateTime.parse(str, formatter);
		str = "" + date; //2014-04-12T01:06:23
	}
}

猜你喜欢

转载自blog.csdn.net/milanleon/article/details/80691591