java中Date与DateFormat的格式输出
来源:互联网 发布:web starter kit 源码 编辑:程序博客网 时间:2024/06/06 05:37
java.text.DateFormat
使用 getDateInstance 来获取该国家/地区的标准日期格式。另外还提供了一些其他静态工厂方法。使用 getTimeInstance 可获取该国家/地区的时间格式。使用 getDateTimeInstance 可获取日期和时间格式。可以将不同选项传入这些工厂方法,以控制结果的长度(从 SHORT 到 MEDIUM 到 LONG 再到 FULL)。确切的结果取决于语言环境,但是通常:
- SHORT 完全为数字,如 12.13.52 或 3:30pm
- MEDIUM 较长,如 Jan 12, 1952
- LONG 更长,如 January 12, 1952 或 3:30:32pm
- FULL 是完全指定,如 Tuesday、April 12、1952 AD 或 3:30:42pm PST。
如果愿意,还可以在格式上设置时区。如果想对格式化或解析施加更多的控制(或者给予用户更多的控制),可以尝试将从工厂方法所获取的 DateFormat 强制转换为 SimpleDateFormat。这适用于大多数国家/地区;只是要记住将其放入一个 try 代码块中,以防遇到特殊的格式。
使用当地时区
Date date = new Date();//日期格式,精确到日 2017-4-16DateFormat df1 = DateFormat.getDateInstance();System.out.println(df1.format(date));//可以精确到秒 2017-4-16 12:43:37DateFormat df2 = DateFormat.getDateTimeInstance();System.out.println(df2.format(date));//只显示出时时分秒 12:43:37DateFormat df3 = DateFormat.getTimeInstance();System.out.println(df3.format(date));//显示日期,周,上下午,时间(精确到秒)//2017年4月16日 星期日 下午12时43分37秒 CSTDateFormat df4 = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);System.out.println(df4.format(date));//显示日期,上下午,时间(精确到秒) //2017年4月16日 下午12时43分37秒DateFormat df5 = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);System.out.println(df5.format(date));//显示日期,上下午,时间(精确到秒) //2017年4月16日 下午12时43分37秒DateFormat df5_1 = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.CHINA);System.out.println(df5_1.format(date));//显示日期,上下午,时间(精确到分) 17-4-16 下午12:43DateFormat df6 = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);System.out.println(df6.format(date));//显示日期,时间(精确到秒) 2017-4-16 12:43:37 DateFormat df7 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);System.out.println(df7.format(date));
二、 SimpleDateFormat
java.text.SimpleDateFormat
定义了以下模式字母(所有其他字符 'A'
到 'Z'
和 'a'
到 'z'
都被保留):
G
Era 标志符TextAD
y
年Year1996
; 96
M
年中的月份MonthJuly
; Jul
; 07
w
年中的周数Number27
W
月份中的周数Number2
D
年中的天数Number189
d
月份中的天数Number10
F
月份中的星期Number2
E
星期中的天数TextTuesday
; Tue
a
Am/pm 标记TextPM
H
一天中的小时数(0-23)Number0
k
一天中的小时数(1-24)Number24
K
am/pm 中的小时数(0-11)Number0
h
am/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
实例参数
"yyyy.MM.dd G 'at' HH:mm:ss z"
2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy"
Wed, Jul 4, '01
"h:mm a"
12:08 PM
"hh 'o''clock' a, zzzz"
12 o'clock PM, Pacific Daylight Time
"K:mm a, z"
0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa"
02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z"
Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ"
010704120856-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"
2001-07-04T12:08:56.235-0700
代码结果
Date d = new Date();/* h 1-12输出格式: 2017-04-16 01:01:22 */DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");String s = format1.format(d);System.out.println(s);/* H 0-23输出格式:2017-04-16 13:01:22*/DateFormat format2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");s = format2.format(d);System.out.println(s);/* K 0-11输出格式:2017-04-16 01:01:22 */DateFormat format3 = new SimpleDateFormat("yyyy-MM-dd KK:mm:ss");s = format3.format(d);System.out.println(s);/* k 1-24输出格式: 2017-04-16 13:01:22 */DateFormat format4 = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");s = format4.format(d);System.out.println(s);/* 输出格式: 20170416010122 */DateFormat format5 = new SimpleDateFormat("yyyyMMddhhmmss");s = format5.format(d);System.out.println(s);
常用方法
parse
public Date parse(String texts)
- 解析字符串的文本,生成
Date
。此方法试图解析文本。如果解析成功,并返回解析得到的日期。更新后的
pos
可以用来指示下次调用此方法的起始点。如果发生错误,并且返回 null。 - 指定者:
- 类
DateFormat
中的parse
- 参数:
text
- 应该解析其中一部分的String
。- 返回:
- 从字符串进行解析的
Date
。如果发生错误,则返回 null。 - 抛出:
NullPointerException
- 如果text
为 null。- 另请参见:
DateFormat.setLenient(boolean)
parse
public Date parse(String text, ParsePosition pos)
- 解析字符串的文本,生成
Date
。此方法试图解析从
pos
给定的索引处开始的文本。如果解析成功,则将pos
的索引更新为所用最后一个字符后面的索引(不必对直到字符串结尾的所有字符进行解析),并返回解析得到的日期。更新后的pos
可以用来指示下次调用此方法的起始点。如果发生错误,则不更改pos
的索引,并将pos
的错误索引设置为发生错误处的字符索引,并且返回 null。 - 指定者:
- 类
DateFormat
中的parse
- 参数:
text
- 应该解析其中一部分的String
。pos
- 具有以上所述的索引和错误索引信息的ParsePosition
对象。- 返回:
- 从字符串进行解析的
Date
。如果发生错误,则返回 null。 - 抛出:
NullPointerException
- 如果text
或pos
为 null。- 另请参见:
DateFormat.setLenient(boolean)
format
public final String format(Date date)
- 将一个 Date 格式化为日期/时间字符串。
- 参数:
date
- 要格式化为时间字符串的时间值。- 返回:
- 已格式化的时间字符串。
- java中Date与DateFormat的格式输出
- java中Date与DateFormat的格式输出
- Java中Date类的输出格式
- java中的Date与DateFormat
- java中Date, DateFormat的一些方法总结
- java中DateFormat和Date的互操作
- java中Date, DateFormat的一些方法总结
- java中Date, DateFormat的一些方法总结
- Java学习之Date与DateFormat
- java中Random,Date,Calendar,DateFormat,SimpleDateFormat
- DateFormat类输出各种格式的时间
- JAVA的日期应用:Date、DateFormat、Calendar
- JAVA的日期应用:Date、DateFormat、Calendar
- JAVA的日期应用:Date、DateFormat、Calendar
- JAVA的日期应用:Date、DateFormat、Calendar
- Java日期时间(Date/Time):DateFormat格式代码
- Java-Date, Calendar, DateFormat
- Java - Date - Calendar - DateFormat
- Java的系统Property
- List转数组toArray方法
- Util包中Arrays
- java生成UUID通用唯一识别码
- java中Date
- java中Date与DateFormat的格式输出
- FileDescriptor的作用
- FileInputStream
- 操作系统那些事(2)-类型
- SQL
- EL表达式
- Hibernate与 MyBatis的比较
- 往数据库添加数据后乱码
- Class类中的getEnclosing*、getDeclared*与getDeclaringClass的区别