Java--第1天--日期(一)

温馨提示:
本人在http://how2j.cn?p=36286这个网站学习的第一天,做个总结,欢迎大家前去访问学习。
在这个网站里面有系统的学习路线,大家可以根据自己的情况选择合适的学习路线。(点击图片即可跳转到这个页面哦,去试试吧)

  • 时间原点

所有的数据类型,最终都是以数字的形式表现出来的。
比如:2019-01-15,在计算机中就是1547548010031
0对应的是Java的时间原点,对应的日期是1970年1月1日8点0分0秒 。

  1. (为什么是8点,因为中国的太平洋时区是UTC-8,刚好和格林威治时间差8个小时)
  2. (为什么对应1970年呢? 因为1969年发布了第一个 UNIX
    版本:AT&T,综合考虑,当时就把1970年当做了时间原点。所有的日期,都是以为这个0点为基准,每过一毫秒,就+1。)
  • 创建日期对象
package date;

import java.util.Date;

public class DateDemo 
{
	public static void main(String[] args) 
	{
		//获取当前时间
		Date date = new Date();
		System.out.println("输出当前时间:"+date);
	}

}

程序输出结果:

输出当前时间:Tue Jan 15 18:05:36 CST 2019

示例1:接下来我们将日期转换成字符串(2019-01-15)这种形式

package date;

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

public class DateDemo 
{
	public static void main(String[] args) 
	{
		//获取当前时间
		Date date = new Date();
		System.out.println("输出当前时间:"+date);
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
		//将日期格式转换成字符串
		String str = sdf.format(date);
		System.out.println("当前时间转换成字符串:"+str);
	}

}

程序输出结果:

输出当前时间:Tue Jan 15 18:05:36 CST 2019
当前时间转换成字符串:2019-01-15 18:16:06 693

示例2:在把字符串转换成日期格式:

package date;

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

public class DateDemo 
{
	public static void main(String[] args) 
	{
		//获取当前时间
		Date date = new Date();
		System.out.println("输出当前时间:"+date);
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
		//将日期转换成字符串
		String str = sdf.format(date);
		System.out.println("当前时间转换成字符串:"+str);
		//将字符串转换成日期格式
		try {
			Date date2 = sdf.parse(str);
			System.out.println("字符串转换成日期格式:"+date2);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

程序输出结果:

输出当前时间:Tue Jan 15 18:22:58 CST 2019
当前时间转换成字符串:2019-01-15 18:22:58 031
字符串转换成日期格式:Tue Jan 15 18:22:58 CST 2019

科普:
//y 代表年
//M 代表月
//d 代表日
//H 代表24进制的小时
//h 代表12进制的小时
//m 代表分钟
//s 代表秒
//S 代表毫秒

示例3:练习-日期格式化

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

答案:

package date;

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

/**
1.声明日期数组
2.设置日期格式
3.设置最后日期为2000年
4.获取随机时间
5.遍历日期数组(获取到1970-2000年之间的随机数)
6.对日期数组进行升序排序
 * @author eleven
 *
 */

    public class DateDemo {
    	public static void main(String[] args) {
    	
    		//声明日期数组
    		Date[] date = new Date[9];
    		//设置日期格式
    		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS");
    		//设置最后日期为2000年
    		String str = "2000-01-01 00:00:00:000";
    		Date d = new Date();
    		try {
    			d = sdf.parse(str);//将当前时间设置为2000年
    		} catch (ParseException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		//获取随机时间
    		long time = d.getTime();
    		System.out.println("获取到的是随机时间是:");
    		//遍历日期数组
    		for (int i = 0; i <=8; i++) {
    			date[i] =new Date((long) (Math.random()*time));//获取1970年-2000年之间的随机数
    			String s = sdf.format(date[i]);
    			System.out.println(s);
    		}
    		//对日期后的数组进行升序排序
    		Arrays.sort(date);
    		System.out.println("排序后的时间");
    		for (int i = 0; i <= 8; i++) {
    			String s = sdf.format(date[i]);
    			System.out.println(s);
    		}
    	}
    }

输出的结果:

获取到的是随机时间是:
1980-06-20 21:19:13:07
1973-12-02 06:28:35:395
1994-07-03 04:00:26:165
1990-08-16 02:51:58:447
1976-10-05 15:05:21:551
1983-06-27 06:09:27:231
1976-07-15 12:51:54:317
1997-07-13 06:13:01:02
1987-04-13 22:26:30:65
升序排序后的时间
1973-12-02 06:28:35:395
1976-07-15 12:51:54:317
1976-10-05 15:05:21:551
1980-06-20 21:19:13:07
1983-06-27 06:09:27:231
1987-04-13 22:26:30:65
1990-08-16 02:51:58:447
1994-07-03 04:00:26:165
1997-07-13 06:13:01:02

友情链接:http://how2j.cn?p=36286

猜你喜欢

转载自blog.csdn.net/qq_41293896/article/details/86497693