Java面向对象
Java异常
Java数组
Java常用类
Java集合
Java IO流
Java线程
Java反射
Socket编程
Java注解开发
Java GoF设计模式
HashMap
Java内存模型
Java线性表

Java日期类型

java.util.Date类

package com.wkcto.chapter04.datetime;

import java.util.Date;

/**
 * 演示Date类
 * @author 蛙课网
 *
 */
public class Test01 {

	public static void main(String[] args) {
		//1) 无参构造 , 返回当前日期
		Date  date = new Date();
		System.out.println( date );
		
		//2) 通过构造方法指定一个从 1970-1-1 00:00:00 经过的毫秒数 
		long millis = System.currentTimeMillis();  	//返回当前日期从 1970-1-1 00:00:00 经过的毫秒数 
		System.out.println( millis );
		
		Date date2 = new Date(millis);
		System.out.println( date2 );
		
		date2 = new Date(millis + 1000*62);
		System.out.println( date2 );
		
		//
		System.out.println( date.after(date2));  		//false
		System.out.println( date.getTime() ); 		//返回日期距离1970-1-1 00:00:00 经过的毫秒数 
		
		
	}

}

java.text.SimpleDateFormat 类

package com.wkcto.chapter04.datetime;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
 * Date与字符串之间的相互转换
 * @author 蛙课网
 *
 */
public class Test02 {

	public static void main(String[] args) throws ParseException {
		// 1) 创建Date对象 , 返回当前日期
		Date date = new Date();
		System.out.println(date);  		//Thu Aug 09 16:18:48 CST 2018
		
		//2) 把Date转换为指定格式的字符串
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss SSS");
		System.out.println( sdf.format(date) );    //2018年08月09日 16:21:46 295

		//3)把日期字符串转换为Date对象
		String text = "2088-08-08 10:11:12";
		//注意: 格式串一定要完全匹配日期字符串
		sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		date = sdf.parse(text) ;  		//把文本按指定的格式转换为字符串
		System.out.println( date );
	}

}

java.util.Calendar类

package com.wkcto.chapter04.datetime;

import java.util.Calendar;
import java.util.Date;

/**
 * 演示Calendar类
 * @author 蛙课网
 *
 */
public class Test03 {

	public static void main(String[] args) {

		//1) 获取当前日历
		 Calendar rightNow = Calendar.getInstance();
		 System.out.println( rightNow );
		 //java.util.GregorianCalendar[time=1533803370426,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2018,MONTH=7,WEEK_OF_YEAR=32,WEEK_OF_MONTH=2,DAY_OF_MONTH=9,DAY_OF_YEAR=221,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=4,HOUR_OF_DAY=16,MINUTE=29,SECOND=30,MILLISECOND=426,ZONE_OFFSET=28800000,DST_OFFSET=0]
	
		 //2) 获得日历各个字段值
		 System.out.println( rightNow.get(Calendar.YEAR));
		 //注意 , Calendar.MONTH 字段的值是从0开始的
		 System.out.println( rightNow.get(Calendar.MONTH));			//7 , 代表8月
		 System.out.println( rightNow.get(Calendar.DAY_OF_MONTH));
		 System.out.println( rightNow.get(Calendar.HOUR_OF_DAY));
		 System.out.println( rightNow.get(Calendar.MINUTE));
		 System.out.println( rightNow.get(Calendar.SECOND));
		 
		 //3)修改日历各个字段的值, 使用set()设置字段值时, 可能会影响到相邻字段的值
		 rightNow.set(Calendar.DAY_OF_MONTH, 40);
		 System.out.println( rightNow.get(Calendar.DAY_OF_MONTH)); 	//9
		 System.out.println( rightNow.get(Calendar.MONTH));			//8
		 
		 //4)
		 Date date = rightNow.getTime(); 		//返回日历对应的Date日期
		 System.out.println( date );
		 long mills = rightNow.getTimeInMillis();		//返回日历对应的毫秒数
		 System.out.println( mills );
	}

}

java.time包中的日期类

java.time包中的日期类是线程安全的

package com.wkcto.chapter04.datetime;

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

/**
 * LocalDateTime类
 * @author 蛙课网
 *
 */
public class Test04 {

	public static void main(String[] args) {
		LocalDate date = LocalDate.now() ;
		System.out.println( date );
		LocalTime time = LocalTime.now();
		System.out.println( time);
		LocalDateTime dateTime = LocalDateTime.now();
		System.out.println( dateTime );  //2018-08-09T16:58:16.003
		
		//对日期格式化
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
		//LocalDateTime有一个实例方法format对日期格式化
		System.out.println( dateTime.format(formatter));
		//把字符串转换为日期
		String text = "2088年08月08日 10:11:12";
		//LocalDateTime有一个静态方法parse()可以把字符串转换为日期
		dateTime = LocalDateTime.parse(text, formatter);
		System.out.println( dateTime );
		
	}

}