Java中SimpleDateFormat日期格式转换详解及代码示例

SimpleDateFormat是处理日期格式转换的类。

官方API_1.8关于SimpleDateFormat继承于DateFormate截图:

SimpleDateFormat的构造器如下:

SimpleDateFormat中的格式定义,常用的用红色框圈出:

中文解释:

y : 年
M : 年中的月份
D : 年中的天数
d : 月中的天数
w : 年中的周数
W : 月中的周数
a : 上下/下午
H : 一天中的小时数(0-23)
h : 一天中的小时数(0-12)
m : 小时中的分钟
s : 分钟中的秒数
S : 毫秒数

SimpleDateFormat方法:

继承于DateFormate的方法:

SimpleDateFormat常用方法和常用格式定义使用实例:

package com.lanhuigu.java.format;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class FormatTest {
	public static void main(String[] args) throws ParseException {
		// **************1.(format,parse)最常用方法实例*************
		System.out.println("----------最常用方法---------");
		// 格式
		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		// 时间
		Date date1 = new Date();
		System.out.println("操作前的时间:" + date1);
		// 日期类型时间-》转换为定义格式-》字符串类型时间
		/*
     * 注意: format(Date date)这个方法来自于SimpleDateFormat的父类DateFormat
     */
		String str1 = sdf1.format(date1);
		System.out.println("字符串类型时间:" + str1);
		// 字符串类型时间-》转换为定义格式-》日期类型时间
		Date dateF1 = sdf1.parse(str1);
		System.out.println("日期类型时间:" + dateF1);
		// **************2.关于常用格式分析*************
		System.out.println("----------常用格式分析---------");
		/*
     * y : 年
     * M : 年中的月份
     * D : 年中的天数
     * d : 月中的天数
     * w : 年中的周数
     * W : 月中的周数
     * a : 上下/下午
     * H : 一天中的小时数(0-23)
     * h : 一天中的小时数(0-12)
     * m : 小时中的分钟
     * s : 分钟钟的秒数
     * S : 毫秒数
     */
		// 注意,为了省事,这个地方把常用的都放进来了,一起打印看效果,
		// 在实际使用中,根据需求进行相应格式转换
		SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd,w,W,a,HH:mm:ss,SS");
		String str2 = sdf2.format(new Date());
		System.out.println("日期类型时间:" + str2);
		System.out.println("字符串类型时间:" + sdf2.parse(str2));
		// **************2.关于构造器使用技巧分析*************
		System.out.println("----------构造器使用技巧分析---------");
		/*
     * 构造器:
     * SimpleDateFormat();
     * SimpleDateFormat(String pattern);
     * SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols);
     * SimpleDateFormat(String pattern, Locale locale)
     */
		// 通过对应构造器构造对象,直接调用方法,简洁写法
		System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
	}
}

程序运行结果:

总结

关于SimpleDateFormate需会使用其不同参数下的常用方法,以及常用格式,构造器简写方式。

以上就是本文全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

时间: 2017-12-09

Java中的SimpleDateFormat使用详解

public class SimpleDateFormat extends DateFormat SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类. 它允许格式化 (date -> text).语法分析 (text -> date)和标准化. SimpleDateFormat 允许以为日期-时间格式化选择任何用户指定的方式启动. 但是,希望用 DateFormat 中的 getTimeInstance. getDateInstance 或 getDateTime

Java中SimpleDateFormat的使用方法

本文内容大多基于官方文档和网上前辈经验总结,经过个人实践加以整理积累,仅供参考. java.text.SimpleDateFormat 以区域语言环境敏感的方式格式化和解析日期,可以将日期格式化为指定字符串和将字符串解析成日期. java.text.SimpleDateFormat 可以根据用户定义的模式格式化日期 @Test public void test() { Calendar calendar = Calendar.getInstance(); calendar.set(2016, 1

Java SimpleDateFormat中英文时间格式化转换详解

SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类.它允许进行格式化(日期 -> 文本).解析(文本 -> 日期)和规范化. SimpleDateFormat使得可以选择任何用户定义的日期-时间格式的模式.但是,仍然建议通过DateFormat中的getTimeInstance.getDateInstance 或 getDateTimeInstance 来创建日期-时间格式器.每一个这样的类方法都能够返回一个以默认格式模式初始化的日期/时间格式器.可以根据需

Java中SimpleDateFormat用法详解

public class SimpleDateFormat extends DateFormat SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类. 它允许格式化 (date -> text).语法分析 (text -> date)和标准化. SimpleDateFormat 允许以为日期-时间格式化选择任何用户指定的方式启动. 但是,希望用 DateFormat 中的 getTimeInstance. getDateInstance 或 getDateTime

详解Java中格式化日期的DateFormat与SimpleDateFormat类

DateFormat 1. DateFormat 介绍 DateFormat 的作用是 格式化并解析"日期/时间".实际上,它是Date的格式化工具,它能帮助我们格式化Date,进而将Date转换成我们想要的String字符串供我们使用 不过DateFormat的格式化Date的功能有限,没有SimpleDateFormat强大:但DateFormat是SimpleDateFormat的父类.所以,我们先对DateFormat有个整体了解,然后再学习SimpleDateFormat.

详解Java中的日期类

Java 编程语言中时间的处理类有 Date类与 Calendar类.目前官方不推荐使用 Date类,因为其不利于国际化:而是推荐使用 Calendar类,并使用 DateFormat 类做格式化处理. 一.Date 类介绍 Date 表示特定的瞬间,精确到毫秒. 在 JDK 1.1 之前,类 Date 有两个其他的函数.它允许把日期解释为年.月.日.小时.分钟和秒值.它也允许格式化和解析日期字符串. 不过,这些函数的 API 不易于实现国际化.从 JDK 1.1 开始,应该使用 Calenda

详解 Java中日期数据类型的处理之格式转换的实例

详解 Java中日期数据类型的处理之格式转换的实例 概要: 日期以及时间格式处理,在Java中时间格式一般会涉及到的数据类型包括Calendar类和Date类. Date类: 1.Date类型转String类型(以时间格式1970-01-01 01:01:01为例) //yyyy-MM-dd HH:mm:ss表示24时间进制 SimpleDateFormat sDateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String

详解Java中Collections.sort排序

Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能:如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b,c,d,e,f,g这样,当然数字也是这样的. compare(a,b)方法:根据第一个参数小于.等于或大于第二个参数分别返回负整数.零或正整数. equals(obj)方法:仅当指定的对象也是一个 Comparator,并且强行实施与此 Comparator 相同的排序时才返回 true. Collections.

详解Java中@Override的作用

详解Java中@Override的作用 @Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处: 1.可以当注释用,方便阅读: 2.编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错.例如,你如果没写@Override,而你下面的方法名又写错了,这时你的编译器是可以编译通过的,因为编译器以为这个方法是你的子类中自己增加的方法. 举例:在重写父类的onCreate时,在方法前面加上@Override 系统可以帮你检查方法的正确性. @Overr

详解Java中多线程异常捕获Runnable的实现

详解Java中多线程异常捕获Runnable的实现 1.背景: Java 多线程异常不向主线程抛,自己处理,外部捕获不了异常.所以要实现主线程对子线程异常的捕获. 2.工具: 实现Runnable接口的LayerInitTask类,ThreadException类,线程安全的Vector 3.思路: 向LayerInitTask中传入Vector,记录异常情况,外部遍历,判断,抛出异常. 4.代码: package step5.exception; import java.util.Vector

详解java 中Spring jsonp 跨域请求的实例

详解java 中Spring jsonp 跨域请求的实例 jsonp介绍 JSONP(JSON with Padding)是JSON的一种"使用模式",可用于解决主流浏览器的跨域数据访问的问题.由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的<script> 元素是一个例外.利用 <script> 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSO

详解Java 中的嵌套类与内部类

详解Java 中的嵌套类与内部类 在Java中,可以在一个类内部定义另一个类,这种类称为嵌套类(nested class).嵌套类有两种类型:静态嵌套类和非静态嵌套类.静态嵌套类较少使用,非静态嵌套类使用较多,也就是常说的内部类.其中内部类又分为三种类型: 1.在外部类中直接定义的内部类. 2.在函数中定义的内部类. 3.匿名内部类. 对于这几种类型的访问规则, 示例程序如下: package lxg; //定义外部类 public class OuterClass { //外部类静态成员变量

详解Java中HashSet和TreeSet的区别

详解Java中HashSet和TreeSet的区别 1. HashSet HashSet有以下特点: 不能保证元素的排列顺序,顺序有可能发生变化 不是同步的 集合元素可以是null,但只能放入一个null 当向HashSet集合中存入一个元素时,HashSet会调用该对象的hashCode()方法来得到该对象的hashCode值,然后根据 hashCode值来决定该对象在HashSet中存储位置. 简单的说,HashSet集合判断两个元素相等的标准是两个对象通过equals方法比较相等,并且两个

详解java中this.getClass()和super.getClass()的实例

详解java中this.getClass()和super.getClass()的实例 前言: 遇到this.getClass()和super.getClass()的返回值感到疑惑,经过探索豁然开朗. getClass()是java中Object类的一个方法,其原型为: public final Class<?> getClass() 返回值为 当前运行时类的Class对象. 所以写了一段代码来说明: getClass()不受this和super影响,而是有当前的运行类决定的. 代码如下: 父类