package Advance.date;import java.text.SimpleDateFormat;import java.util.Date;
/**
* @author 衣鱼
* java对日期的处理
* 获取日期:java.util.Date;
* 日期格式转换:java.text.SimpleDateFormat;
*/
public class DateTest01 {
public static void main(String[] args ) throws Exception{
//获取系统时间
Date now = new Date(); //Date重写了toString()
System.out.println(now);
//日期格式化
//日期类型数据 按照指定格式进行转换
//Date ——转换——>String
//java.text.SimpleDateFormat SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。
//它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
/*
* yyyy ——年
* MM ——月
* dd——天
* HH——时
* mm——分
* ss——秒
* SSS——毫秒
* */
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
//sdf此刻是一个引用
//调用SimpleDateFormat的方法 StringBuffer format();
//将给定的 Date 格式化为日期/时间字符串,并将结果添加到给定的 StringBuffer。
String n = sdf.format(now);
System.out.println(n);
//将一个日期字符串,转换成Date类型!!!
String s ="2021-07-01 08:00:00 "; //格式对齐:String字符串和SimpleDateFormat格式要相同
//异常:java.text.ParseException
//但是SimpleDateFormat在格式相同的情况下没有写毫秒,如果Sting字符串规定了毫秒,在运行是可以的,省略毫秒
//String s ="2021-07-01 08:00:00 000";
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date time=sdf2.parse(s); //parse(); 方法将String转为Date 通过SimpleDateFormat桥梁
System.out.println(time);
System.out.println(sdf2.format(time));}}
方法执行时间
package Advance.date;
/**
* @author 衣鱼
* 获取1970年1月1日 00:00:00 000到当前时间的毫秒数 1秒=1000毫秒
* 应用:统计一个方法执行完耗费的时间
*/
public class DateTest02 {
public static void main(String[] args){
long i =System.currentTimeMillis();
System.out.println(i); //获取1970年1月1日 00:00:00 000到当前时间的毫秒数
/* @return the difference, measured in milliseconds, between
* the current time and midnight, January 1, 1970 UTC.
* @see java.util.Date
*/
/**
* 统计一个方法执行完耗费的时间
* 思路:调用目标方法之前记录一个毫秒数
* 执行完方法之后记录一个毫秒数
* */
long begin =System.currentTimeMillis();
print();
long end =System.currentTimeMillis();
System.out.println("方法耗费时长"+(end-begin)+"毫秒");}
public static void print(){
for(int i = 0;i<1000;i++){
System.out.println("i="+i);}}}
Date构造方法理解
package Advance.date;import java.text.SimpleDateFormat;import java.util.Date;
public class DateTest03 {
public static void main(String[] args){
//创建Date对象,在构造方法里面传入参数“1”代表什么?——参数“1”是一毫秒
//1970-01-01 00:00:00 001
Date time=new Date(1);
//更改Date格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
String str =sdf.format(time);
System.out.println(str); //输出:1970-01-01 08:00:00 001 北京是东八区
//获取昨天此刻的时间
Date time2 = new Date(System.currentTimeMillis()-1000*60*60*24);
String str2 = sdf.format(time2);
System.out.println("昨日此时"+str2);}}
package Advance.number;import java.math.BigDecimal;
/**
* @author 衣鱼
* BigDecimal 属于大数据,精度极高,不属于基本数据类型 属于java对象
* 这是sun为财务软件提供的一个类
*/
public class BigDecimalTest01 {
public static void main(String[] args){
BigDecimal v1 = new BigDecimal(100);
BigDecimal v2 = new BigDecimal(100);
//求和 v1+v2 错误 v1 v2都是引用
//调用方法
BigDecimal v3 =v1.add(v2);
System.out.println(v3);}}
随机数生成
package Advance.number;import java.util.Random;
public class RandomTest01 {
public static void main(String[] args){
//创建随机数对象
Random random =new Random();
//产生Int范围内的数字
int num = random.nextInt();
System.out.println(num);
//产生0-bound 之间的随机数
for(int i = 0;i<1000;i++){
System.out.println(random.nextInt(1024)); //0-1023
}}}