文章目录
前言
Math是常用API之一。在需要科学计算时,Math能提供一些常用的计算方法。
Date日期,也是常用API之一。在开发中,与数据库关联时,日期在记录时间有重要作用。
本文基于个人学习过程中的笔记,记录的常用Math、Date方法,希望帮助读者快速入门与回顾。
1.常用的Math方法
1.1 随机数
这个在基础的练习中经常出现。
Math.random()方法
// 1~10随机数,注意强转
int a = (int) (Math.random()*10);
1.2 四舍五入
Math.round()方法:
// PI四舍五入的近似值
double PI = Math.PI;
System.out.println(Math.round(PI));
1.3 开方
Math.sqrt()方法:
// 15、16的开方
System.out.println(Math.sqrt(15));
System.out.println(Math.sqrt(16));
1.4 次方
Math.pow()方法:
// 次方
//括号里逗号左侧是
double fifteen = Math.pow(3.872983346207417, 2);
System.out.println(fifteen);
2.Date 日期
2.1 基本概念
JAVA中的Date通常用于时间、日期的表示与操作。时间原点为1970年1月1日8:00,原因是纪念UNIX的发布,感兴趣的小伙伴可自行查阅相关典故。
在学习日期的一些基本方法之前,我们曾经用过System.currentTimeMillis()来表示当前毫秒值做过小案例,此处稍微举个例子复习一下:
public static void main(String[] args) {
// TODO Auto-generated method stub
long now = System.currentTimeMillis();
int a = 0;
// 来进行一千万次for循环,看看运行时间
for(int i = 0 ; i < 10000000 ; i++) {
a += 1;
}
long afterFor = System.currentTimeMillis();
System.out.println("经历的毫秒数为");
System.out.println(afterFor-now);
}
但是毫秒的时间并不能直接方便地显示当前是几年几月几号,这时候我们就要用到Date
2.2 创建方式
new Date 的时候,可以根据需求添加参数(从原点算起的毫秒偏移),具体例子如下:
import java.util.Date;
/**
* @Author Sharry
* @Time 2022年5月25日 下午1:24:04
* @Version 1.0
* Description Date的创建演示
*/
public class CreateDate {
public static void main(String[] args) {
//无参
Date now = new Date();
System.out.println("当前时间"+now);
//含参,从原点算起偏移
Date history = new Date(10000000);
System.out.println("偏移后的时间"+history);
}
}
练习:使用毫秒值偏移创建2022年1月1日的日期
public static void main(String[] args) {
// TODO Auto-generated method stub
//先计算1970-2022润年多出来的天数
long moreDay = (2022-1970)/4;
//偏移年数
long years = 2022-1970;
//20220101毫秒偏移
long start = singleYear(singleDay())*years
+moreDay*singleDay();
Date st = new Date(start);
System.out.println(st);
}
/**单日毫秒
* @return daily ms
*/
public static long singleDay() {
long second = 1000;
long min = second*60;
long hour = min*60;
long day = hour*24;
return day;
}
/**单年毫秒
* @return yearly ms
*/
public static long singleYear(long singleDay) {
return singleDay*365;
}
2.3 常用方法
2.3.1 getTime()获取当前毫秒值
这个方法的作用效果是和System.currentTimeMillis()一样的。
Date d = new Date();
long now1 = d.getTime();
long now2 = System.currentTimeMillis();
System.out.println(now1);
System.out.println(now2);
2.3.2 格式化输出日期
虽然Date的输出结果已经包含年月日时间,但可读性依然有待提高,比如:
Sun May 08 01:08:53 CST 2022
这个输出结果对英文一般的同志来说,可能要花几秒时间思考:周日 五月 8日 …
通过格式化转字符串输出,可以将年月日直观地表现出来:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = new Date();
String str = sdf.format(d);
System.out.println(str);
SimpleDateFormat 参数说明:
参数 | 代表 |
---|---|
y | 年 |
M | 月 |
d | 日 |
H | 小时 |
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(str);
2.3.3 字符串转日期
上面提到的SimpleDateFormat类可以将日期转字符串输出,那么字符串也可以转为Date输出:
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS" );
String str = "2022-05-25 14:36:21 758";
Date d = sdf.parse(str);
System.out.println(d);
}
3 总结
本文记录了一些个人学习Math计算方法、Date日期相关笔记。但要注意本文中的Date是java.util包的Date,不是sql包,小伙伴们导包的时候要注意。
下一篇见!