Java--第1天--IO流(一)
温馨提示:
本人在http://how2j.cn?p=36286这个网站学习的第一天,做个总结,欢迎大家前去访问学习。
在这个网站里面有系统的学习路线,大家可以根据自己的情况选择合适的学习路线。(点击图片即可跳转到这个页面哦,去试试吧
)
- 时间原点
所有的数据类型,最终都是以数字的形式表现出来的。
比如:2019-01-15,在计算机中就是1547548010031
0对应的是Java的时间原点,对应的日期是1970年1月1日8点0分0秒 。
- (为什么是8点,因为中国的太平洋时区是UTC-8,刚好和格林威治时间差8个小时)
- (为什么对应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