Java常用日期类 SimpleDateFormat格式化日期 currentTimeMillis函数说明

2016-10-02 10:06:00
admin
原创 1311
摘要:Java常用日期类 SimpleDateFormat格式化日期 currentTimeMillis函数说明

一、Java常用日期类

1、java.sql.Date继承java.util.Date;

2、Date无法设置毫秒,不建议使用Date修改时间

3、Calendar调用getTime获取时间对象是经过new出来的;

4、Calendar默认宽松模式,设置的日期字段可以溢出,调用get函数会触发日期重新计算;


二、SimpleDateFormat格式化日期

1、java.text.Format子类DateFormat、MessageFormat、NumberFormat;

2、DateFormat子类SimpleDateFormat,SDF多线程不安全,可以使用线程局部变量保证安全;

3、SimpleDateFormat默认宽松模式,解析的日期字段可以溢出,返回的时间对象经过重新计算;


日期格式化:

public class DateFormatTest {
public static void main(String[] args) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date now = new Date();
String text = df.format(now);
System.out.println(text);
}
}

字符串是否是日期:

public static boolean isDate(String dateStr) {
try {
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
Date date = df.parse(dateStr);
String realDataStr = df.format(date);
if (!dateStr.equals(realDataStr))
return false;
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}


三、currentTimeMillis函数

1、时间换算:1秒=1000毫秒,1毫秒=1000微秒,1微秒=1000毫微秒,毫微秒=纳秒;

2、nanoTime返回虚拟机的计时器的当前纳秒值,只能用于计时,与日期时间无关;

3、2038年有符号整数表达的时间将会溢出;


public static void testTimeMillis() {
long beginTime = System.currentTimeMillis();
long beginNano = System.nanoTime();
long endTime = System.currentTimeMillis();
long endNano = System.nanoTime();
System.out.println(beginTime);
System.out.println(endTime);
System.out.println("diff1 is " + (endTime - beginTime));
System.out.println(beginNano);
System.out.println(endNano);
System.out.println("diff2 is " + (endNano - beginNano));
}


输出:

1476882336328
1476882336328
diff1 is 0
1152734306175
1152734307293
diff2 is 1118

发表评论
评论通过审核之后才会显示。