java日期格式化SimpleDateFormat的使用详解

 更新时间:2019年05月02日 09:26:42   作者:李学凯  
这篇文章主要介绍了java SimpleDateFormat使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

日期和时间格式由 日期和时间模式字符串 指定。在 日期和时间模式字符串 中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行解释。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串
白话文的讲:这些A——Z,a——z这些字母(不被单引号包围的)会被特殊处理替换为对应的日期时间,其他的字符串还是原样输出。

日期和时间模式(注意大小写,代表的含义是不同的)

yyyy:年
MM:月
dd:日
hh:1~12小时制(1-12)
HH:24小时制(0-23)
mm:分
ss:秒
S:毫秒
E:星期几
D:一年中的第几天
F:一月中的第几个星期(会把这个月总共过的天数除以7)
w:一年中的第几个星期
W:一月中的第几星期(会根据实际情况来算)
a:上下午标识
k:和HH差不多,表示一天24小时制(1-24)。
K:和hh差不多,表示一天12小时制(0-11)。
z:表示时区

(2017-12-28日,更新)

因为看到了Java 8 里面对日期的格式化操作的API,回头又看了看这个以前的日期格式化。发现,文中的实例不是很全面。不符合湿胸的性格,特地来完善一下。

private static void formatDataTest() {
    /*
     * 日期转期望格式的字符串
     */
    //HH 和 hh 的差别:前者是24小时制,后者是12小时制。
    StringBuilder sb = new StringBuilder();
    sb.append("yyyy年MM月dd日 HH:mm:ss")
        .append(" 上下午标志 a")
        .append(" E")
        .append(" 一年中的第D天")
        .append(" 一月中的第F个星期")
        .append(" 一年中的第w个星期")
        .append(" 一月中的第W个星期")
        .append(" Z")
        .append(" z");
    SimpleDateFormat sdf = new SimpleDateFormat(sb.toString());
    String dateString = sdf.format(new Date());
    System.out.println(dateString);
    /*
     * 字符串转日期
     */
    Date date;
    try {
      date = sdf.parse(dateString);
      System.out.println(date);
    } catch (ParseException e) {
      System.out.println(e.getMessage());
    }
  }

运行结果:

2017年12月28日 18:21:731 上下午标志 下午 星期四 一年中的第362天 一月中的第4个星期 一年中的第52个星期 一月中的第5个星期 +0800 CST
Thu Dec 28 18:21:00 CST 2017

这里多说一句,一个月中的第几个星期,  F   这个出来的结果,不靠谱,具体我就在这多做测试啦,我是测试过,才这么说的,还是后面的那个  W  靠谱。

(更新完成)

具体简单常见的实例:

package com.lxk.DateFormat;
 
import java.text.SimpleDateFormat;
import java.util.Date;
 
/**
 * Created by lxk on 2016/11/4
 */
public class Format {
  public static void main(String[] args) {
    Date ss = new Date();
    System.out.println("一般日期输出:" + ss);
    System.out.println("时间戳:" + ss.getTime());
    //Date aw = Calendar.getInstance().getTime();//获得时间的另一种方式,测试效果一样
    SimpleDateFormat format0 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String time = format0.format(ss.getTime());//这个就是把时间戳经过处理得到期望格式的时间
    System.out.println("格式化结果0:" + time);
    SimpleDateFormat format1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
    time = format1.format(ss.getTime());
    System.out.println("格式化结果1:" + time);
  }
}

测试结果图:

需要什么格式,自己拼好字符串,就可以格式化日期啦。授人以渔呀有木有。

喷子们要是觉得简单呢,就省省唾沫星子吧。我就记个笔记用。

上面的是:日期转自己想要的字符串格式,下面是字符串转日期类型。

 private static void testStringToDate() {
    String s = "2017-05-25";
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    Date date = null;
    try {
      date = format.parse(s);
    } catch (ParseException e) {
      System.out.println(e.getMessage());
    }
    System.out.println(date);
  }

下面是运行的debug截图。

上面的那个  日期和时间模式  是按我们常用的年月日时分秒来放的,下面传个别人的专业的图,供参考。

定义了以下模式字母(所有其他字符 'A' 到 'Z' 和 'a' 到 'z' 都被保留):

以上所述是小编给大家介绍的java SimpleDateFormat使用详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Java详解AVL树的应用

    Java详解AVL树的应用

    AVL树是高度平衡的二叉树,它的特点是AVL树中任何节点的两个子树的高度最大差别为1,本文主要给大家介绍了Java如何实现AVL树,需要的朋友可以参考下
    2022-07-07
  • Mybatis-Plus时间范围查询方式详解

    Mybatis-Plus时间范围查询方式详解

    这篇文章主要介绍了Mybatis-Plus时间范围查询方式详解,通过两种方式结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • Java并发之线程池Executor框架的深入理解

    Java并发之线程池Executor框架的深入理解

    这篇文章主要介绍了Java并发之线程池Executor框架的深入理解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • Spring boot 默认静态资源路径与手动配置访问路径的方法

    Spring boot 默认静态资源路径与手动配置访问路径的方法

    这篇文章主要介绍了Spring boot 默认静态资源路径与手动配置访问路径的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-05-05
  • 简介Java程序的Shell脚本包装

    简介Java程序的Shell脚本包装

    这篇文章主要介绍了简介Java程序的Shell脚本包装,将Java运用于脚本程序当中,有时或许是个不错的主意~需要的朋友可以参考下
    2015-07-07
  • Java数字转中文大写工具类详细代码(拿去即用)

    Java数字转中文大写工具类详细代码(拿去即用)

    最近项目中用到金额转大写的地方,索性给大家总结下,这篇文章主要给大家介绍了关于Java数字转中文大写工具类的相关资料,文中给出了详细的代码示例,需要的朋友可以参考下
    2024-05-05
  • 详谈Jedis连接池的使用

    详谈Jedis连接池的使用

    下面小编就为大家带来一篇详谈Jedis连接池的使用。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Spring Boot如何使用EhCache演示

    Spring Boot如何使用EhCache演示

    这篇文章主要介绍了Spring Boot如何使用EhCache演示,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Exception in thread main java.lang.NoClassDefFoundError错误解决方法

    Exception in thread main java.lang.NoClassDefFoundError错误解决方

    这篇文章主要介绍了Exception in thread main java.lang.NoClassDefFoundError错误解决方法,需要的朋友可以参考下
    2016-08-08
  • Java后台防止客户端重复请求、提交表单实现原理

    Java后台防止客户端重复请求、提交表单实现原理

    这篇文章主要介绍了Java后台防止客户端重复请求、提交表单实现原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12

最新评论