1.Date(java.util.Date)
日期介绍:
//定义方式
Date date = new Date();
System.out.println(date);
/* Wed Jun 19 11:29:00 CST 2019
* 满足一种规则:EEE MM dd HH:mm:ss zzz yyyy
* 满足这个规则的日期格式被称为:格林威制格式
*
* 在中国一般的格式
* yyyy-MM-dd HH:mm:ss 或 yyyy-MM-dd
*
*
* */
//获取系统时间 时间戳
System.out.println(System.currentTimeMillis());
//获取时间戳
System.out.println(date.getTime());
//知道时间戳 获取对应日期
date.setTime(0);
System.out.println(date);
//before() 和 after() 用于比较两个时间的先后顺序
System.out.println(date.before(new Date()));
System.out.println(date.after(new Date()));
2.DateFormat
日期格式化:
Date date =new Date();
//转换为yyyy-MM-dd HH:mm:ss 或 yyyy-MM-dd
//根据操作系统所处的位置选择的格式
System.out.println(DateFormat.getDateInstance().format(date));
//日本的日期格式 根据程序员的要求显示
/*
* DateFormat.FULL 全格式 2019年6月19日星期三
* DateFormat.LONG 2019年6月19日
* DateFormat.MEDIUM 2019-6-19
*
* Locale指代的是 地区和语言环境
* Locale.JAPAN 表示日本
*/
System.out.println(DateFormat.getDateInstance(DateFormat.FULL,Locale.JAPAN).format(date));
System.out.println(DateFormat.getDateInstance(DateFormat.FULL,Locale.TAIWAN).format(date));
System.out.println(DateFormat.getDateInstance(DateFormat.FULL,Locale.US).format(date));
//显示时间
System.out.println(DateFormat.getTimeInstance().format(date));
//同理如果需要按照程序员的指定的显示时间的话,同样可以getDateInstance()的方法
System.out.println(DateFormat.getTimeInstance(DateFormat.FULL,Locale.JAPAN).format(date));
System.out.println(DateFormat.getTimeInstance(DateFormat.FULL,Locale.TAIWAN).format(date));
System.out.println(DateFormat.getTimeInstance(DateFormat.FULL,Locale.US).format(date));
//显示时间和日期
System.out.println(DateFormat.getDateTimeInstance().format(date));
//同理如果需要按照程序员的指定的显示时间的话,同样可以getDateInstance()的方法
System.out.println(DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL,Locale.JAPAN).format(date));
System.out.println(DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL,Locale.TAIWAN).format(date));
System.out.println(DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL,Locale.US).format(date));
日期解析:
//解析String 为Date 需要String格式对比正确
String str = "2019年06月19日星期日";
DateFormat df = DateFormat.getDateInstance(DateFormat.FULL);
Date date = null;
try {
date = df.parse(str);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(date);
3.SimpleDateFormat(DateFormat的子类)
相对DateFormat解析和格式化更为方便
日期格式化
SimpleDateFormat 可以让程序员自行定义格式化的格式
SimpleDateFormat sdf = new SimpleDateFormat();
Date date = new Date();
//自定义格式
sdf.applyPattern("yyyy-MM-dd aa HH:mm:ss:SSS ");
System.out.println(sdf.format(date));
日期解析
SimpleDateFormat 可以让程序员自行定义解析的格式
String str = "2019-06-19 下午 15:07:20:782 ";
SimpleDateFormat sdf = new SimpleDateFormat();
sdf.applyPattern("yyyy-MM-dd aa HH:mm:ss:SSS ");
Date date = null;
try {
date = sdf.parse(str);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(date);
4.Calendar(日历类)
日历类的介绍:
Date date = new Date();
//获得系统自带的日历对象
Calendar calendar = Calendar.getInstance();
//获取当前时间
System.out.println(calendar.getTime());
//日历默认映射的是当天
//get到
System.out.println( calendar.get(+Calendar.YEAR) + "年" );
System.out.println(calendar.get(Calendar.MONTH) + 1 + "月" );
System.out.println( calendar.get(Calendar.DAY_OF_MONTH )+ "日");
System.out.println("上午0 下午1: " + calendar.get(Calendar.AM_PM));
System.out.println("小时 12制:" + calendar.get(Calendar.HOUR));
System.out.println("小时 24制:" + calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("分钟" + calendar.get(Calendar.MINUTE));
System.out.println("秒" + calendar.get(Calendar.SECOND));
System.out.println("毫秒" + calendar.get(Calendar.MILLISECOND));
System.out.println("一周的第"+calendar.get(Calendar.DAY_OF_WEEK)+"天 周日为第一天");
System.out.println("某个月的第"+calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH)+"周");
System.out.println("某个年的第"+ calendar.get(Calendar.WEEK_OF_YEAR)+"周" );
System.out.println("某个年的第"+ calendar.get(Calendar.DAY_OF_YEAR)+"天" );
//根据日历类,去推算时间
//例如23年后是多少年
calendar.add(Calendar.YEAR, 23);
System.out.println(calendar.getTime());
//例如在180天后是什么时间
calendar.add(Calendar.YEAR, -23);
calendar.add(Calendar.DAY_OF_YEAR, 180);
System.out.println(calendar.getTime());
String str = "2019-6-19";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
date = sdf.parse(str);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//将日期映射到日历上
calendar.setTime(date);
System.out.println(calendar.getTime());
//set到年月日时分
calendar.set(2008, 10, 12, 10, 30);
System.out.println(calendar.getTime());
5.Math(数学类)
Math类就是java中的数学类
数学类中存放了 很多数学运算的方法 及 常量
常用方法:
//求一个绝对值
System.out.println(Math.abs(-1));
//求一个数的平方根
System.out.println(Math.sqrt(64));
//求一个数的立方根
System.out.println(Math.cbrt(64));
//求一个数的五立方根
System.out.println(Math.pow(32, 1/5.0));
//求一个数的五次方
System.out.println(Math.pow(2, 5));
//随机数 范围 [0,1) 一个doule值
System.out.println(Math.random());
//返回向上取整一个double值
System.out.println(Math.ceil(10.01234));
//返回向下取整一个double值
System.out.println(Math.floor(10.01234));
//勾股定律
System.out.println(Math.hypot(3, 4));
//自然数 一个无限不循环小数
System.out.println(Math.E);
//求 e的几次方等于e
System.out.println(Math.log(Math.E));
//求 10的几次方等于1000
System.out.println(Math.log10(1000));
// 这个数接近的两个double值的整数 值在中间选择偶数 其他情况选择比较接近的数
System.out.println(Math.rint(5.5));//6
System.out.println(Math.rint(6.5));//6
//四舍五入
//这个数接近的两个long值的整数 值在中间选择大的一个数 其他情况选择比较接近的数
System.out.println(Math.round(5.5));
6. Random(随机类)
随机也是可重演的(种子相同,随机的基本数据类型相同)
Random random = new Random();
//nextInt() 获取一个随机整数 还可以获取随机基本数据类型中的其他类型
System.out.println(random.nextInt());
//产生一个[0-100)的整数值
System.out.println(random.nextInt(100));
/*
* 相同的种子数,可以让我们模拟上次得到的随机数
* 特殊场景:查看发过的邀请码
*/
//创建一个随机数对象,设置种子
Random random2 = new Random();
random2.setSeed(100);
System.out.println(random2.nextInt());
//在创建对象的时候就传入种子
Random random3 = new Random(100);
System.out.println(random3.nextInt());