获取系统当前时间
包:java.util.Date;
- 直接调用无参数构造方法
Date nowtime = new Date(); - 日期的格式化
这时SimpleDateFormat类上场了。
SimpleDateFormat是抽象类DateFormat的子类。
所在的包是:java.text.SimpleDateFormat;
yyyy 年
MM 月
dd 日
HH 时
mm 分
ss 秒
SSS 毫秒
例如:
Date nowtime = new Date();
SimpleDateFormat times = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS);
String nowtime = times.format(nowtime); - 获取系统当前时间如下:
package package3;
import java.util.Date;
import java.text.SimpleDateFormat;
public class Nowtime {
public static void main(String[] args) {
// TODO Auto-generated method stub
Date nowtime = new Date();
SimpleDateFormat time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:sss");
String nowtimes = time.format(nowtime);
System.out.println(nowtimes);
}
}
- 那如果有个日期字符串怎么装换成Date类型。(还记得Python中的日期反转吗,这里不过是用的不同的方法而已)
String time = “2020-3-30 10:15:08:06:666”;
SimpleDateFormat times2 = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss-SSS);
Date dateTime =times.parse(time);//这里可能会有异常,后期说。 - 将日期字符串转换成可处理的Date类型。
package package3;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateStringChange {
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
String time ="2020-3-31 13:32:59:010";
SimpleDateFormat times = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
Date dateTime = times.parse(time);
System.out.println(dateTime);
}
}
- 获取时间戳(毫秒为单位,1970.1.1,24时到现在的时间)
long nowTimes = System.currentTimeMillis();
要这个有什么作用呢? - 统计一个算法或方法的运行时间。
- 之后的时间戳减去之前的时间戳。
package package3;
public class TimeCuo {
public static void main(String[] args) {
// TODO Auto-generated method stub
long Times1 = System.currentTimeMillis();
add();
long Times2 = System.currentTimeMillis();
System.out.println(Times2-Times1+"ms");
}
public static void add() {
for(int i=0;i<100000000;i++)
i+=1;
}
}
System类
- System.out out是System的相关属性和方法。
- println() 方法不是System类的,是PrintStream类的方法。
- gc() 建议启动垃圾回收器。
- currentTimeMillis() 获取时间戳。
- System.exit(0) 退出JVM.
数字格式化
- 类DecimalFormat,其父类NumberFormat为抽象类。
- 包 java.text.DecimalFormat
表示任意数字 “#”
代表千分位 " ,"
代表小数 “.”
代表不够时补0 “0”
科学计算法 “0.###E0” 如:1234 “1.234E3”。
package package3;
import java.text.DecimalFormat;
public class Format1 {
public static void main(String[] args) {
DecimalFormat aa = new DecimalFormat("0.##E0");
System.out.println(aa.format(12569.35554));
}
}
数字类(BigDecimal)
- BigDecimal 属于大数据,精度极高,不属于基本数据类型,属于java对象(引用数据类型)这是sun提供的类。专门用于财务软件中。
- 在数学包中,java.math.BigDecimal
BigDecimal v1 = new BigDecimal (100);
BigDecimal v2 = new BigDecimal(200);
BigDecimal v3 = v1.add(v2);
divide方法:BigDecimal做除法的时候一定要在divide方法中传递第二个参数,定义精确到小数点后几位,否则在不整除的情况下,结果是无限循环小数时,就会抛出以上异常。
解决方法:.divide(v2, 2, BigDecimal.ROUND_HALF_UP);
BigDecimal num1 = new BigDecimal(0.005);
BigDecimal num2 = new BigDecimal(1000000);
BigDecimal num3 = new BigDecimal(-1000000);
//尽量用字符串的形式初始化
BigDecimal num12 = new BigDecimal("0.005");
BigDecimal num22 = new BigDecimal("1000000");
BigDecimal num32 = new BigDecimal("-1000000");
//加法
BigDecimal result1 = num1.add(num2);
BigDecimal result12 = num12.add(num22);
//减法
BigDecimal result2 = num1.subtract(num2);
BigDecimal result22 = num12.subtract(num22);
//乘法
BigDecimal result3 = num1.multiply(num2);
BigDecimal result32 = num12.multiply(num22);
//绝对值
BigDecimal result4 = num3.abs();
BigDecimal result42 = num32.abs();
//除法
BigDecimal result5 = num2.divide(num1,20,BigDecimal.ROUND_HALF_UP);
BigDecimal result52 = num22.divide(num12,20,BigDecimal.ROUND_HALF_UP);
其他方法查找帮助文档。
随机数类
- 包 java.util.Random;
- Random random = new Random();
- int num = random.nextInt();
- //产生0到100的数据
int num2 = random.nextInt(101);
练习:生成5个不重复的随机数,放到数组中。
枚举类
- 可是以后开发中可能遇到返回类型不只两种。
枚举可以解决这个问题。 - 可以列举出来的才使用枚举。
-
- 枚举也是一种引用数据类型。
定义:
enum result{
Success ,
Fuailer
}
使用:
result.Success
- 枚举也是一种引用数据类型。