• JAVA学习第四十六课 — 其它对象API(二)Date类 & Calendar类(重点掌握)


    Date类(重点)

    开发时,会时常遇见时间显示的情况,所以必须熟练Date的应用

    <span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>import java.util.*;
    
    
    public class Main 
    {
    	public static void main(String[] args){
    		
    		long l = System.currentTimeMillis();//1414079892981
    		System.out.println(l);
    		
    		Date  date = new Date();//当前时间
    		System.out.println(date);
    		
    		Date date2 = new Date(1414079892981l);//将毫秒值封装成对象
    		System.out.println(date2);
    	}
    }</strong></span>


    日期对象和毫秒值之间的转换问题。

    毫秒值->日期对象 :1.new Date(TimeMillis);2.setTime()

    故:能够通过Date对象的方法对某年、月、日进行操作

    日期对象->毫秒值 :getTime();

    故:能够通过详细的数值进行运算,两个日期对象无法减,变成毫秒就能够减,得到相隔几天


    Boolean after(Date when)  測试此日期是否在指定日期之后。


    Boolean before(Date when) 測试此日期是否在指定日期之前。

    Object clone() 返回此对象的副本。

    int compareTo(Date anotherDate) 比較两个日期的顺序。

    Boolean equals(Object obj) 比較两个日期的相等性。


    把日期对象转成字符串。

    <span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    public class Main 
    {
    	public static void main(String[] args){
    		MethodDemo();
    	}
    	public static void MethodDemo(){//对日期对象格式化 转换成日期格式的字符串
    		
    		Date date = new Date();
    		//获取日期对象,具备默认的风格
    		DateFormat dateFormat = DateFormat.getDateInstance();//获取日期工厂
    		String str_Date = dateFormat.format(date);
    		System.out.println(str_Date);//2014-10-24
    		
    		DateFormat dateFormat2 = DateFormat.getDateTimeInstance();//获取日期加时间工厂
    		String str_Date2 = dateFormat2.format(date);
    		System.out.println(str_Date2);//2014-10-24 0:30:22
    		
    		//指定格式 FULL:2014年10月24日 星期五   LONG:2014年10月24日  SHORT:14-10-24
    		DateFormat dateFormat3 = DateFormat.getDateInstance(dateFormat.FULL);//获取日期工厂
    		String str_Date3 = dateFormat3.format(date);
    		System.out.println(str_Date3);
    		
    		//2014年10月24日 星期五 上午12时39分27秒
    		DateFormat dateFormat4 = DateFormat.getDateTimeInstance(dateFormat.FULL,dateFormat.LONG);
    		String str_Date4 = dateFormat4.format(date);
    		 System.out.println(str_Date4);
    		 
    		 //自己定义风格 使用的是DateFormat类中的format方法。当中SimpleDateFormat是DateFormat的子类
    		 DateFormat dateFormat5 = new SimpleDateFormat("yyyy#MM#dd");
    		 String str_Date5 = dateFormat5.format(date);
    		 System.out.println(str_Date5);
    	}
    }</strong></span>

    字符串转日期对象

    <span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    public class Main 
    {
    	public static void main(String[] args)throws ParseException{
    		MethodDemo();
    	}
    	//字符串转Date对象 使用的是parse方法
    	public static void MethodDemo() throws ParseException{
    		//默认风格
    		String str_date = "2014-10-24";
    		DateFormat dateFormat = DateFormat.getDateInstance();
    		Date date = dateFormat.parse(str_date);//抛异常
    		System.out.println(date);
    		
    		//自己定义风格
    		String str_date2 = "2014年10月24日";
    		DateFormat dateFormat2 = DateFormat.getDateInstance(DateFormat.LONG);
    		Date date2 = dateFormat2.parse(str_date2);//抛异常
    		System.out.println(date2);
    		
    		String str_date3 = "2014年--10月--24日";
    		DateFormat dateFormat3 = DateFormat.getDateInstance(DateFormat.LONG);
    		dateFormat3 = new SimpleDateFormat("yyyy年--MM月--dd日");
    		Date date3 = dateFormat3.parse(str_date3);//抛异常
    		System.out.println(date3);
    	}
    }</strong></span>


    Date类练习

    2014-10-24 到 2012-12-25日有多少天

    1.将字符串转成Date对象

    2.将Date对象转成毫秒

    3.相减得天数

    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    public class Main 
    {
    	public static void main(String[] args)throws ParseException{
    		MethodDemo();
    	}
    	
    	public static void MethodDemo() throws ParseException{
    		String str1 = "2014-10-24";
    		String str2 = "2012-12-25";
    		
    		Date date1 = new Date();
    		Date date2 = new Date();
    		
    		DateFormat dateFormat1 = DateFormat.getDateInstance();
    		dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
    		date1 = dateFormat1.parse(str1);
    		date2 = dateFormat1.parse(str2);
    		
    		long time1 = date1.getTime();
    		long time2 = date2.getTime();
    		long time = Math.abs(time1 - time2);
    		
    		int day = Getday(time);
    		System.out.println(day+"天");
    	}
    	public static int Getday(long time){
    		return (int)(time/1000/60/60/24);
    	}
    }

    Calendar类

    public class Main 
    {
    	public static void main(String[] args){
    		MethodDemo();
    	}
    	
    	public static void MethodDemo() {
    	
    		Calendar ca = Calendar.getInstance();
    		int year = ca.get(Calendar.YEAR);
    		int mon = ca.get(Calendar.MONTH)+1;//注意要+1,0代表一月
    		int day = ca.get(Calendar.DAY_OF_MONTH);
    		int week = ca.get(Calendar.DAY_OF_WEEK);//注意国外和我们不一样
    		//2014-10-24-星期五
    		System.out.println(year+"-"+mon+"-"+day+"-"+GetWeek(week));
    	}
    
    	private static String GetWeek(int i) {
    		// TODO Auto-generated method stub
    		String[] week = {"","星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
    		return week[i];
    	}
    }
    

    练习:

    import java.util.Calendar;
    
    
    public class Main 
    {
    	public static void main(String[] args){
    		
    	
    		int year = 2014;
    		showyear(year);//推断某一年的二月有几天
    		//showday();
    	}
    
    	private static void showyear(int year) {
    		Calendar ca = Calendar.getInstance();
    		
    		ca.set(year,2,1);//设置某年3月1日时间
    		ca.add(Calendar.DAY_OF_MONTH, -1);//3月的前一天
    		MethodDemo(ca);
    	}
    
    	private static void showday() {
    		
    		Calendar ca = Calendar.getInstance();
    		
    		ca.set(2015,10,25);//设置2015.11.25时间
    		ca.add(Calendar.DAY_OF_MONTH, -1);//时间偏移-》2013
    		MethodDemo(ca);//2015-10-24-星期二
    		
    		ca.add(Calendar.DAY_OF_MONTH, 10);//超过会自己主动进一个月
    		MethodDemo(ca);
    	}
    	
    	public static void MethodDemo(Calendar ca) {
    	
    		
    		int year = ca.get(Calendar.YEAR);
    		int mon = ca.get(Calendar.MONTH)+1;
    		int day = ca.get(Calendar.DAY_OF_MONTH);
    		int week = ca.get(Calendar.DAY_OF_WEEK);
    		int hour = ca.get(Calendar.HOUR);
    		int minute = ca.get(Calendar.MINUTE);
    		int second = ca.get(Calendar.SECOND);
    		System.out.print(year+"-"+mon+"-"+day+"-"+GetWeek(week)+"-"+hour+":");
    		if(minute>9){
    			System.out.println(minute+":"+second);
    		}
    		else {
    			System.out.println("0"+minute+":"+second);
    		}
    	}
    
    	private static String GetWeek(int i) {
    		
    		String[] week = {"","星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
    		return week[i];
    	}
    }
    





  • 相关阅读:
    160. 两个链表的相交点 Intersection of Two Linked Lists
    单链表的C#实现
    14. 字符串数组的最长公共前缀 Longest Common Prefix
    67. 二进制字符串相加 Add Binary
    .NET框架中SortedSet源码(红黑树)
    Guest CPU model configuration in libvirt with QEMU/KVM
    libvirt cpu mode
    host capability
    Stacktack overview
    Installing StackTach
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/7055585.html
Copyright © 2020-2023  润新知