java中Date与DateFormat的格式输出
一、DateFormat
- 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-16
- DateFormat df1 = DateFormat.getDateInstance();
- System.out.println(df1.format(date));
- //可以精确到秒 2017-4-16 12:43:37
- DateFormat df2 = DateFormat.getDateTimeInstance();
- System.out.println(df2.format(date));
- //只显示出时时分秒 12:43:37
- DateFormat df3 = DateFormat.getTimeInstance();
- System.out.println(df3.format(date));
- //显示日期,周,上下午,时间(精确到秒)
- //2017年4月16日 星期日 下午12时43分37秒 CST
- DateFormat 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:43
- DateFormat 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 标志符 | Text | AD |
y |
年 | Year | 1996 ; 96 |
M |
年中的月份 | Month | July ; Jul ; 07 |
w |
年中的周数 | Number | 27 |
W |
月份中的周数 | Number | 2 |
D |
年中的天数 | Number | 189 |
d |
月份中的天数 | Number | 10 |
F |
月份中的星期 | Number | 2 |
E |
星期中的天数 | Text | Tuesday ; Tue |
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 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
- 解析字符串的文本,生成
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
- 将一个 Date 格式化为日期/时间字符串。
-
- 参数:
date
- 要格式化为时间字符串的时间值。- 返回:
- 已格式化的时间字符串。
天津雍博科技有限责任公司
欢迎大家访问www.yongbosoft.com ,崇尚技术,为您提供完美产品,优质服务!
java中Date与DateFormat的格式输出的更多相关文章
- java中如何按一定的格式输出时间, 必须给出例子
题目2: 按一定的格式输出时间 import java.util.*;import java.text.SimpleDateFormat;public class Test { public s ...
- Java中Date各种相关用法
Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码 Calendar time=Calendar.getInstance(); time.clear(); time.set ...
- Java中Date和Calender类的使用方法
查看文章 Java中Date和Calender类的使用方法 2009-10-04 20:49 Date和Calendar是Java类库里提供对时间进行处理的类,由于日期在商业逻辑的应用中占据着 ...
- Java中Date类型详解
一.Date类型的初始化 1. Date(int year, int month, int date); 直接写入年份是得不到正确的结果的. 因为java中Date是从1900年开始算的,所以前面的第 ...
- PAT——不吉利的日期(java中date和Calendar使用)
题目描述 在国外,每月的 13 号和每周的星期 5 都是不吉利的.特别是当 13 号那天恰好是星期 5时,更不吉利. 现在给你一个年份,请你从小到大依次输出当年所有13 号是星期 5 的月份. 输入描 ...
- Java中Date()类 日期转字符串、字符串转日期的问题(已解决)
Java中Date()类 日期转字符串.字符串转日期的问题 今天在写东西的时候突然发现一个问题,就是先new 一个Date()然后将生成的值转为字符串, 然后再将转换后的字符串再次用new Date( ...
- Java基础(37):Java中日期的显示与格式定值----Date与SimpleDateFormat的试用
使用 Date 和 SimpleDateFormat 类表示时间 在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类.这个类最主要的作用就是获取 ...
- [转载]java中Date,SimpleDateFormat
一.Java中的日期概述: 日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式都是非常复杂的问题. 在Java ...
- Oracle数据库date类型与Java中Date的联系与转化
以下是对Java中的日期对象与Oracle中的日期之间的区别与联系做点说明,以期对大家有所帮助.new Date():分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),就是系统当前 ...
随机推荐
- sublime text 3-right click context menu
dd a system wide windows explorer button " Edit with Sublime" similar to how Notepad++ doe ...
- 安装 scws出现 autoconf 需要先安装
安装在终端操作, curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-latest.tar.gz tar xzf autoconf-latest.t ...
- Java常用测试工具
第一部分:九款性能测试 Java入门 如果你才刚开始接触Java世界,那么要做的第一件事情是,安装JDK——Java Development Kit(Java开发工具包),它自带有Java Runti ...
- cocos2d-x中的坑
1. 设置opacity=0, 子结点不受到影响. FadeOut 也不起作用. 查看代码可以找到一个 cascadeOpacityEnabled 的参数, 默认是关闭的. 打开就可以了. 2. Ta ...
- Cortex-A15架构解析:它为什么这么强(转)
今年的新手机趋势无异是全面向四核靠拢,不过同样是四核,在实际的性能上其实是千差万别.例如针对入门级主流市场的四核手机普遍采用的都是Cortex-A7以及 Cortex-A9 级别的CPU内核,这类内核 ...
- 用.NET CORE做项目,VS里编译碰到‘。。。。包降级。。。。’错误
用.NET CORE做项目,VS里编译碰到‘....包降级....’错误 本地开发机:WIN10+VS2017 15.7.3 ,用CORE2.1版本的建立一个项目,做好了,传到gitee上 今天有新同 ...
- 译: 5. RabbitMQ Spring AMQP 之 Topic 主题
在上一个教程中,我们提高了消息传递的灵活 我们使用direct交换而不是使用仅能够进行虚拟广播的fanout交换, 并且获得了基于路由key 有选择地接收消息的可能性. 虽然使用direct 交换改进 ...
- [docker]docker4种网络最佳实战
参考: http://hicu.be/docker-container-network-types docker默认3中网络类型 参考: https://docs.docker.com/engine/ ...
- 解决百度云推送通知,不显示默认Notification
问题:百度云推送通知,不显示默认Notification 描述:采用推送消息的方式,可以在onMessage方法里面获取到推送的消息.另外推送通知也有获取到内容,后台日志也有show private ...
- vue2.0 实现click点击当前li,动态切换class
1,文件内容 ----//为item添加不存在的属性,需要使用vue提供的Vue.set( object, key, value )方法. 看详解:https://cn.vuejs.org/v2/a ...