一般我们Java实现显示时间方式有:Date date = new Date();
date.getTime();
还有一种方式,使用System.currentTimeMillis();
这两种方式获得的结果是一样的,都是得到一个当前的时间的long型的时间的毫秒值,这个值实际上是当前时间值与1970年一月一号零时零分零秒相差的毫秒数。
而且由于Java默认的时间格式是:Mon Jul 03 08:47:50 CST 2006的。
一般我们在中文或者具体项目中使用比较麻烦。
例如我们要显示的时间格式:yyyy年MM月dd日_HH时mm分ss秒那么就可以通过自定义自己的时间格式来完成了。
首先,定义一个SimpleDateFormat变量
SimpleDateFormat sdf = new SimpleDateFormat(("yyyy-MM-dd",Locale.SIMPLIFIED_CHINESE);
这个构造函数的定义如下:
SimpleDateFormat(String pattern, Locale locale)
第一个参数pattern,是时间格式。第二个参数,是用来设置时区的,这里用到了java.util.Locale这个类,这个类了面定义了很多静态变量,直接拿过来用就OK,我们把时区设置为Locale.SIMPLIFIED_CHINESE,只看名字,这个静态变量的意义已经很清楚了
Pattern参数:
Letter Date or Time Component Presentation
G Era designator Text
y Year Year
M Month in year Month
w Week in year Number
W Week in month Number
D Day in year Number
d Day in month Number
F Day of week in month Number
E Day in week Text
a Am/pm marker Text
H Hour in day (0-23) Number
k Hour in day (1-24) Number
K Hour in am/pm (0-11) Number
h Hour in am/pm (1-12) Number
m Minute in hour Number
s Second in minute Number
S Millisecond Number
z Time zone General time zone
Z Time zone RFC 822 time zone
所以
使用这个SimpleDateFormat把当前时间格式化为一个如下格式的时间字符串“XXXX年XX月XX日_XX时XX分XX秒”,代码:
sdf.applyPattern("yyyy年MM月dd日_HH时mm分ss秒");
String timeStr = sdf.format(new Date());
所以完成的代码:
import java.util.*;
import java.text.*;
public class TimeFormat {
public static void main(String[] args) {
//默认的时间显示模式
Date date = new Date();
date.getTime();
System.out.println(date);
System.currentTimeMillis();
//自定义的时间显示模式
SimpleDateFormat sdf = new SimpleDateFormat("",Locale.SIMPLIFIED_CHINESE);
sdf.applyPattern("yyyy年MM月dd日_HH时mm分ss秒");
String timeStr = sdf.format(new Date());
System.out.println(timeStr);
}
}
date.getTime();
还有一种方式,使用System.currentTimeMillis();
这两种方式获得的结果是一样的,都是得到一个当前的时间的long型的时间的毫秒值,这个值实际上是当前时间值与1970年一月一号零时零分零秒相差的毫秒数。
而且由于Java默认的时间格式是:Mon Jul 03 08:47:50 CST 2006的。
一般我们在中文或者具体项目中使用比较麻烦。
例如我们要显示的时间格式:yyyy年MM月dd日_HH时mm分ss秒那么就可以通过自定义自己的时间格式来完成了。
首先,定义一个SimpleDateFormat变量
SimpleDateFormat sdf = new SimpleDateFormat(("yyyy-MM-dd",Locale.SIMPLIFIED_CHINESE);
这个构造函数的定义如下:
SimpleDateFormat(String pattern, Locale locale)
第一个参数pattern,是时间格式。第二个参数,是用来设置时区的,这里用到了java.util.Locale这个类,这个类了面定义了很多静态变量,直接拿过来用就OK,我们把时区设置为Locale.SIMPLIFIED_CHINESE,只看名字,这个静态变量的意义已经很清楚了
Pattern参数:
Letter Date or Time Component Presentation
G Era designator Text
y Year Year
M Month in year Month
w Week in year Number
W Week in month Number
D Day in year Number
d Day in month Number
F Day of week in month Number
E Day in week Text
a Am/pm marker Text
H Hour in day (0-23) Number
k Hour in day (1-24) Number
K Hour in am/pm (0-11) Number
h Hour in am/pm (1-12) Number
m Minute in hour Number
s Second in minute Number
S Millisecond Number
z Time zone General time zone
Z Time zone RFC 822 time zone
所以
使用这个SimpleDateFormat把当前时间格式化为一个如下格式的时间字符串“XXXX年XX月XX日_XX时XX分XX秒”,代码:
sdf.applyPattern("yyyy年MM月dd日_HH时mm分ss秒");
String timeStr = sdf.format(new Date());
所以完成的代码:
import java.util.*;
import java.text.*;
public class TimeFormat {
public static void main(String[] args) {
//默认的时间显示模式
Date date = new Date();
date.getTime();
System.out.println(date);
System.currentTimeMillis();
//自定义的时间显示模式
SimpleDateFormat sdf = new SimpleDateFormat("",Locale.SIMPLIFIED_CHINESE);
sdf.applyPattern("yyyy年MM月dd日_HH时mm分ss秒");
String timeStr = sdf.format(new Date());
System.out.println(timeStr);
}
}