java获取默认时间,Java获取日期和时间方法总结

本文详细介绍了在Java中如何使用`java.util.Date`、`java.text.DateFormat`和`java.util.Calendar`进行日期和时间的格式化,包括默认风格、SHORT、MEDIUM、LONG和FULL等不同展示级别,并提供了示例代码展示各种格式化效果。
摘要由CSDN通过智能技术生成

在写Java程序的时候总免不了与日期和时间打交道,特别是在做项目的时候,要按照各种各样的需求显示不同格式的日期和时间,这时候就需要快速的决定到底用哪一种好,下面对日期和时间的格式化进行了总结。

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

package net.singlex.javadate;

/**

* 以下默认时间日期显示方式都是汉语方式

* 一般语言就默认汉语就可以了,时间日期的格式默认为MEDIUM风格,

* 比如:2013-6-10 13:14:41

* 以下显示的日期时间都是在Date类的基础上的来的,还可以利用Calendar类来实现见类TestDate2.java

*

* @author SingleX

*

*/

import java.util.*;

import java.text.*;

public class TestDate {

public static void main(String[] args) {

Date now = new Date();

Calendar cal = Calendar.getInstance();

DateFormat d1 = DateFormat.getDateInstance(); // 默认语言(汉语)下的默认风格(MEDIUM风格,比如:2013-6-10 13:14:41)

String str1 = d1.format(now);

DateFormat d2 = DateFormat.getDateTimeInstance();

String str2 = d2.format(now);

DateFormat d3 = DateFormat.getTimeInstance();

String str3 = d3.format(now);

DateFormat d4 = DateFormat.getInstance(); // 使用SHORT风格显示日期和时间

String str4 = d4.format(now);

DateFormat d5 = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL); // 显示日期,周,时间(精确到秒)

String str5 = d5.format(now);

DateFormat d6 = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG); // 显示日期。时间(精确到秒)

String str6 = d6.format(now);

DateFormat d7 = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); // 显示日期,时间(精确到分)

String str7 = d7.format(now);

DateFormat d8 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM); // 显示日期,时间(精确到分)

String str8 = d8.format(now);// 与SHORT风格相比,这种方式最好用

System.out.println("用Date方式显示时间: " + now);// 此方法显示的结果和Calendar.getInstance().getTime()一样

System.out.println("用DateFormat.getDateInstance()格式化时间后为:" + str1);

System.out.println("用DateFormat.getDateTimeInstance()格式化时间后为:" + str2);

System.out.println("用DateFormat.getTimeInstance()格式化时间后为:" + str3);

System.out.println("用DateFormat.getInstance()格式化时间后为:" + str4);

System.out.println("用DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL)格式化时间后为:" + str5);

System.out.println("用DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG)格式化时间后为:" + str6);

System.out.println("用DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT)格式化时间后为:" + str7);

System.out.println("用DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM)格式化时间后为:" + str8);

}

}

运行结果:

用Date方式显示时间: Mon Jun 10 13:14:41 CST 2013

用DateFormat.getDateInstance()格式化时间后为:2013-6-10

用DateFormat.getDateTimeInstance()格式化时间后为:2013-6-10 13:14:41

用DateFormat.getTimeInstance()格式化时间后为:13:14:41

用DateFormat.getInstance()格式化时间后为:13-6-10 下午1:14

用DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL)格式化时间后为:2013年6月10日 星期一 下午01时14分41秒 CST

用DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG)格式化时间后为:2013年6月10日 下午01时14分41秒

用DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT)格式化时间后为:13-6-10 下午1:14

用DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM)格式化时间后为:2013-6-10 13:14:41

方法二:用java.util.Calendar类来实现

package net.singlex.javadate;

/**

* 以下是利用Calendar类来实现日期时间的,和Date类相比较比较简单

*

* @author SingleX

*/

import java.util.*;

public class TestDate2 {

public static void main(String[] args) {

Calendar ca = Calendar.getInstance();

int year = ca.get(Calendar.YEAR);// 获取年份

int month = ca.get(Calendar.MONTH);// 获取月份

int day = ca.get(Calendar.DATE);// 获取日

int minute = ca.get(Calendar.MINUTE);// 分

int hour = ca.get(Calendar.HOUR);// 小时

int second = ca.get(Calendar.SECOND);// 秒

int WeekOfYear = ca.get(Calendar.DAY_OF_WEEK);

System.out.println("用Calendar.getInstance().getTime()方式显示时间: " + ca.getTime());

System.out.println("用Calendar获得日期是:" + year + "年" + month + "月" + day + "日");

System.out.println("用Calendar获得时间是:" + hour + "时" + minute + "分" + second + "秒");

System.out.println(WeekOfYear);// 显示今天是本周的第几天(从周末开始计数,我运行时是周一,故结果为2)

}

}

运行结果是:

用Calendar.getInstance().getTime()方式显示时间: Mon Jun 10 13:27:34 CST 2013

用Calendar获得日期是:2013年5月10日

用Calendar获得时间是:1时27分34秒

2

方法三:SimpleDateFormat 24小时制时间显示

字母日期或时间元素表示示例

GEra 标志符TextAD

y年Year1996; 96

M年中的月份MonthJuly; Jul; 07

w年中的周数Number27

W月份中的周数Number2

D年中的天数Number189

d月份中的天数Number10

F月份中的星期Number2

E星期中的天数TextTuesday; Tue

aAm/pm 标记TextPM

H一天中的小时数(0-23)Number0

k一天中的小时数(1-24)Number24

Kam/pm 中的小时数(0-11)Number0

ham/pm 中的小时数(1-12)Number12

m小时中的分钟数Number30

s分钟中的秒数Number55

S毫秒数Number978

z时区General time zonePacific Standard Time; PST; GMT-08:00

Z时区RFC 822 time zone-0800

它有个优点就是支持两位月份,两位日期。带前缀0

Date date = new Date();

SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String sDateSuffix = dateformat.format(date);

System.out.println("sDateSuffix:" + sDateSuffix);

此程序片运行结果:

sDateSuffix:2013-06-10 13:31:23

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值