HOW2J java初级 日期与时间笔记

Date类(是java.util.Date而不是java.sql.Date,后者是访问数据库的)

时间原点:1970年1月1日8点0分0秒

所有的日期,都是以这个0点为基准,每过一毫秒,就+1

Date d1 =new Date();//当前时间

getTime得到一个long型的整数

使用方法 : d1.getTime;

System.currenTimeMills()//当前日期的毫秒数

关键字 简介  
format

日期转字符串

 
parse

字符串转日期


package date;
  
//
import java.text.SimpleDateFormat;
import java.util.Date;
  
public class TestDate {
  
    public static void main(String[] args) {
          
        //y 代表年
        //M 代表月
        //d 代表日
        //H 代表24进制的小时
        //h 代表12进制的小时
        //m 代表分钟
        //s 代表秒
        //S 代表毫秒
        SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS" );
        Date d= new Date();
        String str = sdf.format(d);
        System.out.println("当前时间通过 yyyy-MM-dd HH:mm:ss SSS 格式化后的输出: "+str);
         
        SimpleDateFormat sdf1 =new SimpleDateFormat("yyyy-MM-dd" );
        Date d1= new Date();
        String str1 = sdf1.format(d1);
        System.out.println("当前时间通过 yyyy-MM-dd 格式化后的输出: "+str1);
         
    }
}

字符串转日期

package date;
  
//
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
  
public class TestDate {
  
    public static void main(String[] args) {
        SimpleDateFormat sdf =new SimpleDateFormat("yyyy/MM/dd HH:mm:ss" );
  
        String str = "2016/1/5 12:12:12";
          
        try {
            Date d = sdf.parse(str);
            System.out.printf("字符串 %s 通过格式  yyyy/MM/dd HH:mm:ss %n转换为日期对象: %s",str,d.toString());
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
          
    }
}

例题:日期格式化

准备一个长度是9的日期数组
使用1970年-2000年之间的随机日期初始化该数组
按照这些日期的时间进行升序排序
比如 1988-1-21 12:33:22 就会排在 1978-4-21 19:07:23 前面,因为它的时间更小,虽然日期更大

package time;
import java.util.*;
import java.text.*;
public class FormatDate {
	public static void main(String[] args) {
		int yearHome =1970;
		int yearEnd = 2000;
		Date str[] = new Date[8];
		for(int i=0;i<str.length;i++) {
			str[i]=randomdate(yearHome,yearEnd);
		}
		System.out.println("排序前");
		for (int i = 0; i < str.length; i++) {
            System.out.print(toString(str[i])+"\t");
            	if(2==i%3)
                System.out.println();
        }
		System.out.println("排序后");
		for(int i=0;i<str.length-1;i++) {
			for(int j=i+1;j<str.length;j++) {
				String strTimeI = toString(str[i],"HHmmss");
				String strTimeJ = toString(str[i],"HHmmss");
				int iTimeI = Integer.parseInt(strTimeI);
				int iTimeJ = Integer.parseInt(strTimeJ);
				if(iTimeJ<iTimeI)
				{
					Date t=str[i];
					str[i]=str[j];
					str[j]=t;
				}
			}
		}
		for (int i = 0; i < str.length; i++) {
            System.out.print(toString(str[i])+"\t");
            	if(2==i%3)
                System.out.println();
        }
		
		
	}
	public static String toString(Date d) {
		return toString(d,"yyyy-MM-dd HH:mm:ss");
	}
	public static String toString(Date d,String format) {
		SimpleDateFormat sd = new SimpleDateFormat(format);
				return sd.format(d);
	}
	public static Date randomdate(int yearHome,int yearEnd)  {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
		try{
			Date dHome = sdf.parse(String.valueOf(yearHome));
			Date dEnd = sdf.parse(String.valueOf(yearEnd));
			long timeHome =dHome.getTime();
			long timeEnd =dEnd.getTime();
			long timeRandom = (long)(timeEnd+Math.random()*(timeEnd-timeHome));
			return new Date(timeRandom);
		}catch(ParseException e) {
			e.printStackTrace();
		}	
		return null;
	}
}

翻日历

package date;
 
import java.text.SimpleDateFormat;
//
import java.util.Calendar;
import java.util.Date;
 
public class TestDate {
 
    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        Date now = c.getTime();
        // 当前日期
        System.out.println("当前日期:\t" + format(c.getTime()));
 
        // 下个月的今天
        c.setTime(now);
        c.add(Calendar.MONTH, 1);
        System.out.println("下个月的今天:\t" +format(c.getTime()));
 
        // 去年的今天
        c.setTime(now);
        c.add(Calendar.YEAR, -1);
        System.out.println("去年的今天:\t" +format(c.getTime()));
 
        // 上个月的第三天
        c.setTime(now);
        c.add(Calendar.MONTH, -1);
        c.set(Calendar.DATE, 3);
        System.out.println("上个月的第三天:\t" +format(c.getTime()));
 
    }
 
    private static String format(Date time) {
        return sdf.format(time);
    }
}

完事儿!

猜你喜欢

转载自www.cnblogs.com/mouzaisi/p/12177820.html
今日推荐