Java SimpleDateFormat进行日期格式化

一,为啥要用SimpleDateFormat众所周知,Java中的日期类是Date,然后日期默认的输出样式很奇怪哦,是这样子的:packageorg.maoge.common;importjava.util.Date;publicclassSimpleDateFormatDemo{publicstaticvoidmain(String[]args){

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

点此查看全部文字教程、视频教程、源代码

1. 为啥要用SimpleDateFormat

众所周知,Java中的日期类是Date,然后日期默认的输出样式很奇怪哦,是这样子的:

package org.maoge.common;
import java.util.Date;
public class SimpleDateFormatDemo { 
   
	public static void main(String[] args) { 
   
		//默认输出格式
		Date date=new Date();
		System.out.println(date);//Fri Oct 27 16:56:37 CST 2017
	}
}

真的好像说,这是什么鬼啊,神经病啊,老板要是发现你在前端把日期显示成这样子,非要…觉得你很有个性不可。

OK,所以就很需要将日期以一种我们想要的格式显示出来

另外,有时候我们需要指定一个日期,所以也需要将字符串类型转换为Date类型,我们往往会以为是这样子的:

这里写图片描述

首先我们就注意到了new Date()方法被划上了删除线,这个就表示该方法在定义的时候被@Deprecated注解注解过了,意思是该方法过期了不建议使用了可能有问题了,反正咱知道这个方法最好不用就是了。而且,确实也报错了,所以我们也需要一种将字符串转换为日期的方法

SimpleDateFormat就是为这两种需要诞生滴,类库嘛,就是前人搭棚好乘凉,而且都是牛逼的前人。

2. 日期格式化显示

首先要记住一些标记:(注意大小写)

年yyyy
月MM
日dd
时HH
分mm
秒ss
毫秒SS

然后直接看例子:

package org.maoge.common;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo { 
   
	public static void main(String[] args) { 
   
		//默认输出格式
		Date date=new Date();
		System.out.println(date);//Fri Oct 27 16:56:37 CST 2017
		//日期格式化显示,首先定义格式
		SimpleDateFormat sdf1=new SimpleDateFormat("yyyyMMdd");//显示20171027格式
		SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd");//显示2017-10-27格式
		SimpleDateFormat sdf3=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//显示2017-10-27 10:00:00格式
		SimpleDateFormat sdf4=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");//显示2017年10月27日10时00分00秒格式
		//将格式应用于日期
		System.out.println(sdf1.format(date));//20171027
		System.out.println(sdf2.format(date));//2017-10-27
		System.out.println(sdf3.format(date));//2017-10-27 17:11:13
		System.out.println(sdf4.format(date));//2017年10月27日17时11分13秒
	}
}

3. 将字符串转换为对应日期

注意,因为可能定义的格式和实际字符串提供的格式不符合,所以会抛出异常

package org.maoge.common;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo { 
   
	public static void main(String[] args) { 
   
		//首先定义格式
		SimpleDateFormat sdf1=new SimpleDateFormat("yyyyMMdd");
		SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		//按格式进行转换
		String strDate1="20151010";//符合sdf1格式
		String strDate2="20171027 10:00:00";//不符合格式
		try { 
   
			Date date1=sdf1.parse(strDate1);
			System.out.println(date1);//正常输出Sat Oct 10 00:00:00 CST 2015
			Date date2=sdf2.parse(strDate2);//报错java.text.ParseException: Unparseable date: "20171027 10:00:00"
			System.out.println(date2);
		} catch (ParseException e) { 
   
			e.printStackTrace();
		}
	}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

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


相关推荐

  • python3菜鸟教程笔记

    python3菜鸟教程笔记python2和python3的一些差异:*print函数变了,python3中的print函数必须要加括号*xrange函数合并到了range中,2到5的序列可以直接用range(2,5

    2022年7月6日
    23
  • 怎么添加窗口小工具_vc可视化编程

    怎么添加窗口小工具_vc可视化编程原文地址:http://www.cnblogs.com/carekee/articles/1751805.html(转载者注)推荐在MFC中加入BCG,而不是适用BCG建立工程,因为BCG对中文的支持不是很好,到时候会很麻烦。本文以MDI应用程序为例说明如何在已有的VC++工程中使用BCG界面库,我的开发环境为VS2003(在VC6.0下同样适用)。  1,将BCG/BCGCB

    2022年10月8日
    0
  • excel转json操作

    excel转json操作工作中需要用到将从数据库中下载的excel每行数据转成json文件,用于规则回溯,参考网上资料,通过以下代码可实现:importpandasaspdimportnumpyasnpimportjsonimportdatetime#导入数据#由于phone2有缺失值,如果不加converters={‘phone2’:str},导致读入会变成float形式,导致有值的手机号码后会加点0,如13812341234.0data=pd.read_excel(r’C:\Users\

    2022年6月12日
    35
  • QQ zone_qq上表白小技巧

    QQ zone_qq上表白小技巧终极QQ-ZONE技巧也就是盗他人QQ-ZONE的代码!首先:打开别人QQ空间的网址,通用的啊!呵呵!网址是:http://q-zone.qq.com/fcg-bin/cgi_access_self.fcg?uin=*******&type=0(******代表别人QQ号码)打开的了吗?看到了什么!呵呵!成功的第一步啦!打开的是个XML文件,别人的每个自定义板块ID和位置信息都在这里显示()

    2025年6月15日
    2
  • mysql中phpmyadmin安装教程_安装phpMyAdmin图文教程

    mysql中phpmyadmin安装教程_安装phpMyAdmin图文教程phpmyadmin的安装配置已经是老生常谈的话题了,网络上到处都可以找到相关的配置教程。但是,那些大多都是手动配置的,稍不留神,容易出错。因此站长今天在这里介绍的是,被很多phpmyadmin用户所忽略的phpmyadmin自带的安装程序,下面我们就开始一步一步来安装phpmyadmin。1、首先下载phpmyadmin3.4.11,这是目前最稳定无bug的版本,点击下载2、在你的web根目录新…

    2022年6月1日
    141
  • opencv——访问图像元素(imagedata widthstep)

    opencv——访问图像元素(imagedata widthstep)http://blog.sina.com.cn/s/blog_759803690101gtpx.html怎么访问图像元素(坐标起点相对于图像原点 image origin 从 0 开始,或者是左上角 (img->origin=IPL_ORIGIN_TL) 或者是左下角 (img->origin=IPL_ORIGIN_BL) 假设有 8-bit 1-通道的图像 I (IplIma

    2022年5月2日
    35

发表回复

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

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