日期类
1.怎么获取系统当前时间以及Date对象转换成日期字符串:
Date的构造方法分为两种
第一种无参:
-
-
Date()
分配一个
Date
对象,并初始化它,以便它代表它被分配的时间,测量到最近的毫秒
-
import java.util.Date;
import java.text.*;
public class DateTest01 {
public static void main(String[] args) {
//获取系统当前时间(精确到毫秒),直接调用无参数构造方法就行
Date nowTime = new Date();//代表系统当前时间
// System.out.println(nowTime);
//这样虽然可以显示出时间但是不符合中国人的看时间的习惯,因此格式化成我们习惯的时间格式
//日期可以格式化吗?
// 将日期类型Date,按照指定的格式进行转换:Date 转换成具有一定格式的日期字符串 String
//SimpleDateFormat是java.text包下的,专门负责日期格式化的
//SimpleDateFormat sdf = new SimpleDateFormat(日期格式);
//日期格式:
/*
yyyy 年(年是四位)
MM 月(月是两位)
dd 日
HH 时
mm 分
ss 秒
SSS 毫秒(1000毫秒等于1秒)
*/
SimpleDateFormat sdf = new SimpleDateFormat("["+"yyyy-MM-dd HH:mm:ss SSS"+"]");
String nowDateStr = sdf.format(nowTime);
System.out.println(nowDateStr);
}
}
第二种: 通过毫秒构造Date对象
-
-
Date(long date)
分配一个
Date
对象,并将其初始化为表示自称为“时代”的标准基准时间以后的指定毫秒数,即1970年1月1日00:00:00 GMT。
-
import java.util.Date;
import java.text.SimpleDateFormste;
public class DateTest01{
public static void main(String[] args) {
Date nowTime = new Date(1);//这个时间表示1970年01月01日 00:00:00 000
SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
String m = s.format(nowTime);
System.out.println(m);
//获得昨天此时的时间
Date time2 = new Date(System.currentTimeMillis() - 1000*60*60*24);
String t = s.format(time2);
System.out.println(t);
//获得去年的今天此时时间
Date time3 = new Date(System.currentTimeMillis() -1000*60*60*24*365L);
String p = s.format(time3);
System.out.println(p);
}
}
2.日期字符串转换成Date类型:
import java.util.Date;
import java.text.*;
public class DateTest01 {
public static void main(String[] args) throws ParseException {
String time = "2008-08-08 08:08:08 888";
//如果字符串格式与Simpledateformate中格式不同则出现parseException异常
SimpleDateFormat sdf = new SimpleDateFormat("["+"yyyy-MM-dd HH:mm:ss SSS"+"]");
Date d = sdf.parse(time);
}
}
3.获取1970年1月1日 00:00:00 000到当前系统时间的毫秒数的作用。
简单总结一下System类中属性和方法:
1.System.out(out是System类的静态变量):
public final static PrintStream out = null;
println方法不是System类的,是printStream类的方法。
2.System.gc()是建议启动垃圾回收器
3.System.currentTimeMill()获取自1970年01月01日 00:00:00 000到当前系统默认的时间的总毫秒数。(当你的客户觉得你的程序不够快,这是你就需要调优,这时你就可以用这个查看方法的运行时间,如果很慢,这时你就需要算法和数据结构的调优)。
4.System.exit(0)退出JVM
import java.text.*;
public class DateTest01 {
public static void main(String[] args) throws ParseException {
//获取1970年1月1日 00:00:00 000到当前系统时间的毫秒数有什么用????????????
//统计一个方法耗时
/*long nowTimeMills = System.currentTimeMillis();
System.out.println(nowTimeMills);*/
long start = System.currentTimeMillis();
prints();
long end = System.currentTimeMillis();
System.out.println("方法耗费时间 = " + (end - start) + "毫秒");
}
public static void prints(){
for (int i =0; i < 1000; i++){
System.out.println(i);
}
}
}
4.数字格式化-------DecimalFormat类
import java.text.DecimalFormat;
public class DecimalFormatTest {
public static void main(String[] args) {
//java.text.DecialFormat专门负责数字格式化
/*DecimalFormat df = new DecimalFormat("数字格式");*/
/*数字格式有那些 #代表任意数字
,代表千分位
.代表小数点
0代表位数不够补0
*/
//代表加入千分位
DecimalFormat df = new DecimalFormat("###,###.00000000");
String s = df.format(1235.346666);
System.out.println(s);
}
}
BigDecimal 属于大数据,精度极高。不属于基本数据类型,属于java对象(引用数据类型)专门用在财务软件中,财务软件中double不够用了.
import java.math.BigDecimal;
public class BigDecimalTest {
public static void main(String[] args) {
//这个100不是普通的一百,是精度极高的100
BigDecimal v1 = new BigDecimal(100);
System.out.println(v1);
BigDecimal v2 = new BigDecimal(200);
BigDecimal v3 = v1.add(v2);
System.out.println(v3);
}
}