(Java)常用API(三)Date

【Date类】

import java.util.Date;
/*
 * Java 时间和日期类
 *     java.util.Date
 *     
 * 毫秒概念:1000毫秒  = 1秒
 * 毫秒的0点:
 *       System.currentTimeMills() 返回long型参数
 *       获取当前日期的毫秒值
 *       时间原点:公元1970年1月1日   午夜0:00:00
 * 时间和日期的计算,必须依赖毫秒值
 */
public class Test1 {
	public static void main(String[] args) {
		//1.
		long time = System.currentTimeMillis();
		System.out.println(time);  // 1541145872206
		
		// Date构造方法
		//1.Date空参数构造方法                                      获取的是,当前操作系统中的时间和日期
		Date date = new Date();
		System.out.println(date);  // Fri Nov 02 19:20:42 CST 2018
		//2.Date有参数的构造方法
		Date date1 = new Date(0);  // 传递毫秒值,并转换为对应的日期对象
		System.out.println(date1); // Thu Jan 01 08:00:00 CST 1970
		
		// Date类方法
		//1.getTime()  返回值long   将Date表示的日期转换为毫秒级
		long time1 = date.getTime();
		System.out.println(time1);  // 1541158485334
		
		//2.setTime(long 毫秒值)   将毫秒值转换成日期对象
		Date date2 = new Date();
		date2.setTime(0);
		System.out.println(date2);  // Thu Jan 01 08:00:00 CST 1970
		
	}

}

【对日期进行格式化】

import java.text.SimpleDateFormat;
import java.util.Date;
/*
 * 对日期进行格式化
 *    步骤:
 *    1.创建SimpleDateFormat对象   在构造方法中,写入字符串的日期格式(按规则自己定义)
 *    2.SimpleDateFormat 调用方法format对日期进行格式化  String format(Date date),传递日期对象,返回字符串
 *    3.日期模式:
 *      yyyy    年份
 *      MM      月份
 *      dd      月中的天数
 *      HH      0-23小时
 *      mm      小时中的分钟
 *      ss      秒
 * 
 */
public class Test2 {
	public static void main(String[] args) {
		SimpleDateFormat sdf = new  SimpleDateFormat("yyyy年MM月dd天--HH小时mm分钟ss秒");
		String date = sdf.format(new Date());
		System.out.println(date);             // 2018年11月02天--20小时30分钟35秒
		
	}

}

【将日期字符串转为Date对象】

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
 *  将字符串日期转为Date对象
 *  步骤:
 *     1.创建SimpleDateFormat的对象       构造方法中指定日期的模式
 *     2.子类对象调用DateFormat方法parse, 传递String,返回Date
 */
public class Test3 {
	public static void main(String[] args) throws ParseException {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		Date date = sdf.parse("1999-12-23");    
		System.out.println(date);             // Thu Dec 23 00:00:00 CST 1999	
		
	}

}

【Calendar类】

import java.util.Calendar;

/*
 *   日历类   java.util.Calendar    抽象类,使用它的子类
 *   calendar的静态方法,getInstance()  直接返回了子类的对象      通过静态方法直接获取
 *   
 * 1.Calendar的方法get()
 *   获取日历字段的值
 *   int get(int)
 *   参数int, 获取哪个日历的字段
 *   返回值,表示日历段的具体数值
 *   
 * 2.Calendar的方法set()
 *   设置日历
 *   set(int field, int value)   field设置的是哪个日历字段        value设置后的具体数值
 *   set(int year, int month, int day)   传递三个整数的年 月 日
 *   
 * 3.Calendar的方法add()
 *   日历偏移     指定一个日历中的字段,进行整数偏移
 *   add(int field, int value)
 */
public class Test4 {
	public static void main(String[] args) {
		Calendar c = Calendar.getInstance();
		//System.out.println(c);
		//1.Calendar的方法get()
		// 获取年份
		int year = c.get(Calendar.YEAR);
		// 获取月份
		int month = c.get(Calendar.MONTH);
		// 获取天数
		int day = c.get(Calendar.DAY_OF_MONTH);
		System.out.println(year+"-"+month+"-"+day);  // 2018-10-3
		
		//2.Calendar的方法set()
		c.set(Calendar.YEAR,2090);
		System.out.println(c.get(Calendar.YEAR));   // 2090
		
		c.set(2080,3,16);
		System.out.println(c.get(Calendar.YEAR)+"-"+c.get(Calendar.MONTH)+"-"+c.get(Calendar.DAY_OF_MONTH)); // 2080-3-16
		
		//3.Calendar的方法add()
		c.add(Calendar.MONTH, 2);
		System.out.println(c.get(Calendar.MONTH)); // 5
	}

}

【日期练习:活了多少天】

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Test5 {
	public static void main(String[] args) throws ParseException {
		function();
	}
	/*计算活了多少天
	 *  手动输入   生日(字符串型)   
	 *  当前日期   
	 *  两个日期变成毫秒值  相减
	 */
	public static void function() throws ParseException{
		System.out.println("请输入你的生日:yyyy-MM-dd");
		// 键盘输入,获取生日日期
		String birthday = new Scanner(System.in).next();
		// 将字符串日期转成 Date对象
		// 创建SimpleDateFormat对象,写日期模式
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		// 调用方法parse,字符串转成日期对象
		Date birth = sdf.parse(birthday);
		
		// 获取当前日期对象
		Date today = new Date();
		
		// Date类的getTime(),将两个日期转成毫秒值
		long todaySecond = today.getTime();
		long birthSecond = birth.getTime();
		long second = todaySecond -birthSecond;
		if(second < 0){
			System.out.println("还没有出生");
		}else{
			System.out.println(second/1000/60/60/24);
		}	
		
	}

}

【闰年判断】

import java.util.Calendar;

public class Test6 {
	public static void main(String[] args) {
		function();
	}
	/*计算闰年
	 *  高级算法,将日历设置到当年月份的3月1日,利用add向前偏移一天,
	 *  获取天数,若为29天为闰年,为28天为平年
	 */
	public static void function(){
		Calendar c = Calendar.getInstance();
		// 将日历设置到指定年的3月1日
		c.set(2000,2,1);
		// 日历add方法,向前偏移一天
		c.add(Calendar.DAY_OF_MONTH, -1);
		// get方法获取天数
		int day = c.get(Calendar.DAY_OF_MONTH);
		//进行闰年判断
		if(day == 29){
			System.out.println("闰年");
		}else{
			System.out.println("平年");
		}
		
	}

}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值