JAVA 日期格式化

最近项目中需要用到SimpleDateFormat格式化日期,但是因为对日期格式的不熟练多花了十分钟左右的时间在日期格式化上面,所以趁着周末外面下着大雨闲着无聊整理一下日期格式问题。日期格式化学习预定义格式日期格式化样式自定义日期格式化预定义格式java提供了预定义的日期格式,预定义的日期格式可以满足绝大多数的场景需要。格式化日期需要两步:1、通过DateFormat.getDate…

大家好,又见面了,我是你们的朋友全栈君。

最近项目中需要用到SimpleDateFormat 格式化日期,但是因为对日期格式的不熟练多花了十分钟左右的时间在日期格式化上面,所以趁着周末外面下着大雨闲着无聊整理一下日期格式问题。

预定义格式

java提供了预定义的日期格式,预定义的日期格式可以满足绝大多数的场景需要。
格式化日期需要两步:
1、通过DateFormat.getDateInstance() 获取一个DateFormat对象。
2、调用DateFormat对象的format方法返回一个String类型的日期。
话不多说看代码:

DateFormat dateInstance = DateFormat.getDateInstance();
 System.out.println(dateInstance.format(new Date()));

输出结果:

2019-7-7

日期格式化样式

在通过DateFormat.getDateInstance()创建实例时使用了默认的日期格式化样式,DateFormat还提供了其他格式化样式。

    public static final int FULL = 0;          //全日期
    public static final int LONG = 1;         //长日期
    public static final int MEDIUM = 2;      //中日期
    public static final int SHORT = 3;      //短日期
    public static final int DEFAULT = MEDIUM;  //默认为中日期

各个日期样式如下(系统为中文环境):

日期样式 示例
FULL 2019年7月7日 星期日
LONG 2019年7月7日
MEDIUM 2019-7-7
SHORT 19-7-7
DEFAULT 2019-7-7

DateFormat.getDateInstance()实例只能够获取年月日信息,如果想要获取时间信息要使用DateFormat.getTimeInstance() 实例,DateFormat.getTimeInstance()使用的常量参数和DateFormat.getDateInstance()相同。
时间日期样式:

时间样式 示例
FULL 下午06时21分51秒 CST
LONG 下午06时23分08秒
MEDIUM 18:23:35
SHORT 下午6:23
DEFAULT 18:23:35

一个简单示例:

  DateFormat dateInstance = DateFormat.getDateInstance(DateFormat.LONG);
  DateFormat timeInstance = DateFormat.getTimeInstance(DateFormat.LONG);
  System.out.println(dateInstance.format(new Date()) +" "+timeInstance.format(new Date()));

输出结果:

2019年7月7日 下午06时28分40秒

通过 DateFormat.getDateInstance() 和 DateFormat.getTimeInstance() 组合就可以对日期进行格式化了。

自定义日期格式化

如果预定义的日期格式化不好用的话可以使用自定义日期格式化。使用自定义日期格式化需要创建SimpleDateFormat实例。
先了解一下自定义日期格式化语法:
在这里插入图片描述

表中符号可以单个使用也可以自由组合,除了这些字母以外的符号都算做修饰符,不会进行转换。
示例:

SimpleDateFormat dateFormat = new SimpleDateFormat( "G yyyy年-MM月-dd日 a HH时:mm分:ss秒:sss");
System.out.println(dateFormat.format(new Date()));
SimpleDateFormat dateFormat = new SimpleDateFormat( "D");
System.out.println("今天是今年的第"+new SimpleDateFormat("D").format(new Date())+"天");
System.out.println("今天"+new SimpleDateFormat("E").format(new Date()));
System.out.println("今天是今年的第"+new SimpleDateFormat("w").format(new Date())+"周");
System.out.println("今天"+new SimpleDateFormat("E" , Locale.ENGLISH).format(new Date()));


输出:

现在是 公元 2019年-07月-07日 下午 20时:34分:28秒:028
今天是今年的第188天
今天星期日
今天是今年的第28周
今天Mon

这些东西虽然使用起来不难,但是能记住的话还是能省些时间的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125878.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux环境下动态链接库的生成和使用

    Linux环境下动态链接库的生成和使用

    2021年9月7日
    49
  • 基于51单片机控制步进电机正反转

    基于51单片机控制步进电机正反转基于51单片机控制步进电机正反转此次采用uln2003模块来链接步进电机;##步进电机工作原理步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机。每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速与脉冲频率成正比。步进电动机的结构形式和分类方法较多,一般按励磁方式分为磁阻式、永磁式和混磁式三种;按相数可分为单相、两相、三相和多相等形式。因此我们可以控制单片机I/O口的电平来控制步进电机,此次设计中采用四相单拍工作方式,在这种工作方式下,A、

    2022年5月31日
    72
  • java对象转换map

    java对象转换map背景介绍原理说明反射概念功能作用实现方式方法介绍实例展示对象转MAP背景介绍  今天在项目研发的过程中遇到这样一个需求,在一个统一处理类的入口要将所有后面处理流程需要用到的值统一塞进上下文的MAP对象中,这其中就包括了一持久层的DO对象。  如果对于对象进行逐个遍历是可以实现这个需求,但代码量比较大,所以一直在寻求一种比较合理的处理方式。后来发现可以通过反射的方式实现这个功能。原理

    2022年6月11日
    42
  • PyCharm、Itellij IDEA最好用的插件和主题[通俗易懂]

    PyCharm、Itellij IDEA最好用的插件和主题[通俗易懂]免费分享我用过相对来说最好的几款PyCharm、ItellijIDEA的插件和主题

    2022年8月28日
    10
  • pki体系包括哪些_十大育人体系是指什么

    pki体系包括哪些_十大育人体系是指什么PKI(公钥设施基础,PublicKeyInfrastructure)是一种标准化的密钥管理平台,能为网络应用提供加密和数字签名,以及密钥和证书管理体系的服务。在几乎所有介绍PKI的书籍或文章上,我们都能看到类似于这样的一句话:使用PKI就能保证网络应用的安全。那么,PKI体系的安全性到底怎样呢?就让我们来逐一列出PKI体系的十大安全隐患:风险1:证书持有者能被信任吗?在PKI中,

    2022年8月22日
    8
  • pycharm导入numpy出错_pycharm安装numpy很慢

    pycharm导入numpy出错_pycharm安装numpy很慢今天在使用pycharm写代码时,调用了Numpy这个库,但是报错了,提醒了Nomodulenamed’numpy’。最后知道了一个快速的解决办法:1.在pycharm里:点击file–>settings:2.点击project–>projectinterpreter3.然后点击右边的+号进入一个添加库的的界面,然后搜索你需要的库,在右下角点击安装,然后等待安装,安装…

    2022年8月27日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号