Java 获取当前日期和时间

原文地址:http://www.blogjava.net/parable-myth/archive/2013/01/17/394364.html

有三种方法:

方法一:用java.util.Date类来实现,并结合java.text.DateFormat类来实现时间的格式化,看下面代码:

 1 import java.util.*; 
 2 import java.text.*;
 3 //以下默认时间日期显示方式都是汉语语言方式
 4 //一般语言就默认汉语就可以了,时间日期的格式默认为MEDIUM风格,比如:2008-6-16 20:54:53
 5 //以下显示的日期时间都是再Date类的基础上的来的,还可以利用Calendar类来实现见类TestDate2.java
 6 public class TestDate { 
 7    public static void main(String[] args) { 
 8       Date now = new Date(); 
 9       Calendar cal = Calendar.getInstance(); 
10       
11       DateFormat d1 = DateFormat.getDateInstance(); //默认语言(汉语)下的默认风格(MEDIUM风格,比如:2008-6-16 20:54:53)
12       String str1 = d1.format(now);
13       DateFormat d2 = DateFormat.getDateTimeInstance(); 
14       String str2 = d2.format(now); 
15       DateFormat d3 = DateFormat.getTimeInstance(); 
16       String str3 = d3.format(now); 
17       DateFormat d4 = DateFormat.getInstance(); //使用SHORT风格显示日期和时间
18       String str4 = d4.format(now);
19 
20       DateFormat d5 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL); //显示日期,周,时间(精确到秒)
21       String str5 = d5.format(now);
22       DateFormat d6 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); //显示日期。时间(精确到秒)
23       String str6 = d6.format(now);
24       DateFormat d7 = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT); //显示日期,时间(精确到分)
25       String str7 = d7.format(now);
26       DateFormat d8 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM); //显示日期,时间(精确到分)
27       String str8 = d8.format(now);//与SHORT风格相比,这种方式最好用
28 
29  
30 
31 
32       
33       System.out.println("用Date方式显示时间: " + now);//此方法显示的结果和Calendar.getInstance().getTime()一样
34       
35       
36       System.out.println("用DateFormat.getDateInstance()格式化时间后为:" + str1);
37       System.out.println("用DateFormat.getDateTimeInstance()格式化时间后为:" + str2);
38       System.out.println("用DateFormat.getTimeInstance()格式化时间后为:" + str3);
39       System.out.println("用DateFormat.getInstance()格式化时间后为:" + str4);
40       
41       System.out.println("用DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL)格式化时间后为:" + str5);
42       System.out.println("用DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG)格式化时间后为:" + str6);
43       System.out.println("用DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT)格式化时间后为:" + str7);
44       System.out.println("用DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM)格式化时间后为:" + str8);
45    }
46 
47 }

运行结果:

用Date方式显示时间: Mon Jun 16 20:54:53 CST 2008
用DateFormat.getDateInstance()格式化时间后为:2008-6-16
用DateFormat.getDateTimeInstance()格式化时间后为:2008-6-16 20:54:53
用DateFormat.getTimeInstance()格式化时间后为:20:54:53
用DateFormat.getInstance()格式化时间后为:08-6-16 下午8:54
用DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL)格式化时间后为:2008年6月16日 星期一 下午08时54分53秒 CST
用DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG)格式化时间后为:2008年6月16日 下午08时54分53秒
用DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT)格式化时间后为:08-6-16 下午8:54
用DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM)格式化时间后为:2008-6-16 20:54:53

方法二:用java.util.Calendar类来实现,看下面:

 1 import java.util.*; 
 2 import java.text.*;
 3 //以下是利用Calendar类来实现日期时间的,和Date类相比较比较简单
 4 
 5 public class TestDate2 { 
 6    public static void main(String[] args) { 
 7       
 8       Calendar ca = Calendar.getInstance();
 9       int year = ca.get(Calendar.YEAR);//获取年份
10       int month=ca.get(Calendar.MONTH);//获取月份 
11       int day=ca.get(Calendar.DATE);//获取日
12       int minute=ca.get(Calendar.MINUTE);//
13       int hour=ca.get(Calendar.HOUR);//小时 
14       int second=ca.get(Calendar.SECOND);//
15       int WeekOfYear = ca.get(Calendar.DAY_OF_WEEK); 
16       
17       
18       System.out.println("用Calendar.getInstance().getTime()方式显示时间: " + ca.getTime());
19       System.out.println("用Calendar获得日期是:" + year +"年"+ month +"月"+ day + "日");
20       
21       System.out.println("用Calendar获得时间是:" + hour +"时"+ minute +"分"+ second +"秒");
22       System.out.println(WeekOfYear);//显示今天是一周的第几天(我做的这个例子正好是周二,故结果显示2,如果你再周6运行,那么显示6)
23       
24    }
25 
26 }

运行结果是:
用Calendar.getInstance().getTime()方式显示时间: Mon Jun 16 21:54:21 CST 2008
用Calendar获得日期是:2008年5月16日    注意:这里是5月,而实际是6月,因为Calendar里的月份是0~11对应1~12月。
用Calendar获得时间是:9时54分21秒        注意:这里是12小时制,要想获得24小时制,需要使用 int hour=ca.get(Calendar.HOUR_OF_DAY);//小时  

方法三:

SimpleDateFormat 24小时制时间显示

字母日期或时间元素表示示例
G Era 标志符 Text AD
y Year 199696
M 年中的月份 Month JulyJul07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text TuesdayTue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard TimePSTGMT-08:00
Z 时区 RFC 822 time zone

-0800

它有个优点就是支持两位月份,两位日期。带前缀0.
Date date = new Date();
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String sDateSuffix = dateformat.format(date);
System.out.println("[+]sDateSuffix:"+sDateSuffix);
原文地址:https://www.cnblogs.com/superbaby11/p/5804296.html