Java 基本日期类使用——格式化(二)
Java日期格式化主要有以下几种方式:java.text.DateFormat以及其子类java.text.SimpleDateFormat;
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。将日期表示为 Date
对象,或者表示为从 GMT(格林尼治标准时间)1970 年 1 月 1 日 00:00:00 这一刻开始的毫秒数。(摘录API文档)
1.格式化当前语言环境下的日期,可使用下面的静态工厂方法:
示例1:
Date date = new Date();
String local = DateFormat.getInstance().format(date);
System.out.println("格式化当前语言环境日期:" + local);
String localDate = DateFormat.getDateInstance().format(date);
System.out.println("格式化当前语言环境日期(没有具体到几点):" + localDate);
String localDateTime = DateFormat.getDateTimeInstance().format(date);
System.out.println("格式化当前语言环境日期(具体到几点):" + localDateTime);
结果1:
格式化当前语言环境日期:14-10-16 下午3:20
格式化当前语言环境日期(默认格式):2014-10-16
格式化当前语言环境日期(默认格式):2014-10-16 15:20:12
2.格式化不同语言环境的日期,可在 getDateInstance(int style, Locale aLocale) 、getTimeInstance(int style, int timeStyle, Locale aLocale) 的调用中指定语言环境,style
- 给定的格式化风格。例如,SHORT 用于 US 语言环境中的 "M/d/yy"、timeStyle 给定的时间格式化风格、Locale
- 给定的语言环境。
style:主要有:SHORT 完全为数字、MEDIUM 较长、LONG 更长、FULL 是完全指定等参数,其都是static常量。
示例2:
//指定语言环境为中国
String chinaDate = DateFormat.getDateInstance(DateFormat.LONG, Locale.CHINA).format(date);
String chinaFullDate = DateFormat.getDateInstance(DateFormat.FULL, Locale.CHINA).format(date);
//指定语言环境为英语国家
String englishDate = DateFormat.getDateInstance(DateFormat.LONG, Locale.ENGLISH).format(date);
//指定语言环境为日本
String japanDate = DateFormat.getDateInstance(DateFormat.LONG, Locale.JAPAN).format(date);
System.out.println( chinaDate + "\t" + chinaFullDate + "\t" + englishDate + "\t" + japanDate);
结果2:
2014年10月16日 2014年10月16日 星期四 October 16, 2014 2014/10/16
示例3:
//指定语言环境为中国
String chinaDate = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.LONG, Locale.CHINESE).format(date);
//指定语言环境为英语国家
String englishDate = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.MEDIUM, Locale.ENGLISH).format(date);
//指定语言环境为日本
String japanDate = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.JAPAN).format(date);
System.out.println( chinaDate + "\n" + englishDate + "\n" + japanDate);
结果3:
2014年10月16日 星期四 下午03时31分05秒
Thursday, October 16, 2014 3:31:05 PM
2014/10/16 15:31:05 CST
3.简单的将字符串转化为日期。parse(String source)从给定字符串的开始解析文本,以生成一个日期。
示例4:
DateFormat dateFormat = DateFormat.getInstance();
Date date1 = dateFormat.parse("14-10-13 下午2:32");
System.out.println(date1);
结果4:
Mon Oct 13 14:32:00 CST 2014
4.利用SimpleDateFormat以及parse方法实现日期格式化、字符串转为日期对象
示例5:
//创建日期
Date date = new Date();
//创建不同的日期格式
DateFormat df1 = DateFormat.getInstance();
DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EE");
//产生一个指定国家指定长度的日期格式,长度不同,显示的日期完整性也不同
DateFormat df3 = DateFormat.getDateInstance(DateFormat.FULL, Locale.CHINA);
DateFormat df4 = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒 EE", Locale.CHINA);
DateFormat df5 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EEEEEE", Locale.US);
DateFormat df6 = new SimpleDateFormat("yyyy-MM-dd");
DateFormat df7 = new SimpleDateFormat("yyyy年MM月dd日");
//将日期按照不同格式进行输出
System.out.println("-------日期按照不同格式转换为字符串------");
System.out.println("按Java默认的日期格式,默认的区域:\t\t\t\t" + df1.format(date));
System.out.println("按指定格式 yyyy-MM-dd hh:mm:ss EE ,系统默认区域 :\t" + df2.format(date));
System.out.println("按日期的FULL模式,区域设置为中文:\t\t\t\t" + df3.format(date));
System.out.println("按指定格式 yyyy年MM月dd日 hh时mm分ss秒 EE ,区域为中文:\t" + df4.format(date));
System.out.println("按指定格式 yyyy-MM-dd hh:mm:ss EE ,区域为美国:\t\t" + df5.format(date));
System.out.println("按指定格式 yyyy-MM-dd ,系统默认区域 :\t\t\t" + df6.format(date));
//将符合该格式的字符串转换为日期,若格式不相配,则会出错,具体格式参照SimpleDateFormat构造器中的pattern参数
Date date1 = df1.parse("14-10-16 下午2:32");
Date date2 = df2.parse("2014-10-16 02:51:07 星期五");
Date date3 = df3.parse("2014年10月16日 星期五");
Date date4 = df4.parse("2014年10月16日 02时51分18秒 星期五");
Date date5 = df5.parse("2014-10-16 02:51:18 Friday");
Date date6 = df6.parse("2014-10-16");
System.out.println("-------字符串转换为日期对象------");
System.out.println(date1);
System.out.println(date2);
System.out.println(date3);
System.out.println(date4);
System.out.println(date5);
System.out.println(date6);
结果5:
-------日期按照不同格式转换为字符串------
按Java默认的日期格式,默认的区域: 14-10-16 下午3:45
按指定格式 yyyy-MM-dd hh:mm:ss EE ,系统默认区域 : 2014-10-16 03:45:11 星期四
按日期的FULL模式,区域设置为中文: 2014年10月16日 星期四
按指定格式 yyyy年MM月dd日 hh时mm分ss秒 EE ,区域为中文: 2014年10月16日 03时45分11秒 星期四
按指定格式 yyyy-MM-dd hh:mm:ss EE ,区域为美国: 2014-10-16 03:45:11 Thursday
按指定格式 yyyy-MM-dd ,系统默认区域 : 2014-10-16
-------字符串转换为日期对象------
Thu Oct 16 14:32:00 CST 2014
Thu Oct 16 02:51:07 CST 2014
Thu Oct 16 00:00:00 CST 2014
Thu Oct 16 02:51:18 CST 2014
Thu Oct 16 02:51:18 CST 2014
Thu Oct 16 00:00:00 CST 2014
备注:日期格式化pattern参数可参见api文档SimpleDateFormat,如下:
Java 基本日期类使用——格式化(二)的更多相关文章
- Java学习——日期类
Java学习——日期类 摘要:本文主要记录了Java开发中用到的和日期有关的类以及对日期的操作. 部分内容来自以下博客: https://www.cnblogs.com/talk/p/2680591. ...
- Java的日期类和日期格式化类
日期类: Date date = new Date(); // 获取当前的系统时间 2 System.out.println("年份:"+ date.getYear()); Cal ...
- java常用日期类总结
java 常用的日期类有三个Date.SimpleDateFormat.Calendar
- Java 基本日期类使用(一)
一.java.util.Date Date表示特定的瞬间,精确到毫秒,其子类有Date.Time.Timestap.默认情况下输出的Date对象为:Mon Oct 13 17:48:47 CST 20 ...
- Java基础——日期类Date
一.概述 date代表一个特定的时间,精确到毫秒 二.构造方法 方法名 说明 public Date() 分配一个Date对象,并初始化,以便它代表被分配的时间,精确到毫秒 public Date(l ...
- Java:日期类Date与Calendar
Timestamp类型与日期类型之间的转化? Timestamp timestamp = Timestamp.valueOf("2017-03-17 07:00:00"); Dat ...
- java时间日期类(Date、DateFormat、Calendar)学习
1.Date类 常用方法:long getTime(),用于返回当前时刻的毫秒值 Date d = new Date(2000); System.out.println(d.getTime());// ...
- java Date日期类和SimpleDateFormat日期类格式
~Date表示特定的时间,精确到毫秒~构造方法:public Date()//构造Date对象并初始化为当前系统的时间public Date(long date) //1970-1-1 0:0:0到指 ...
- Java中日期类型和mysql中日期类型进行整合
1. java与mysql中日期.时间类型总结: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 mysql(版本:5.1.50)的时间日期类型如下: da ...
随机推荐
- 网易云课堂_C++开发入门到精通_章节2:引用和函数的高级用法
课时6函数重载 函数重载 在C语言头文件中的extern "C" //常见的C语言头文件格式 #ifndef _FUNC_ #define _FUNC_ #ifdef __cplu ...
- 格而知之1:UIButton中imageView和titleLabel的位置调整
在使用UIButton时,有时候需要调整按钮内部的imageView和titleLabel的位置和尺寸.在默认情况下,按钮内部的imageView和titleLabel的显示效果是图片在左文字在右,然 ...
- Android得到一个闹钟在第三方
收集报警信息 闹铃时间,闹铃备注信息 闹铃引起系统变化的点: 1. Send Notification (正点闹钟能够设置不发送) 2. Play audio 闹铃信息结构体 ClockInfo{ S ...
- 键盘事件之keydown keypress keyup区别
经过测试,显然事件执行的顺序是: keydown->keypress->keyup. 但是连续按一个按键的话,会一直触发:keydown keypress.直到你提起按键,会触发keyup ...
- Equal 和==比较
Equal 和==比较 ==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相当,只能用==操作符. 如果一个变 ...
- SpringMVC中采用简洁的配置实现文件上传
文件上传我们一般会有两种策略,一种是通过IO流上传,还有一种是通过表单上传,其实这两种在客户端实现起来都是很简单的,在服务端处理会略有差别,个人感觉IO上传代码简单,但是也有很多硬伤,还是表单上传更合 ...
- java中使用URLClassLoader访问外部jar包的java类
很多时候 我们写的Java程序是分模块的,有很好的扩展机制,即我们可以为我们自己的java类添加插件,来运行将来某天我们可能开发出来的类,以下称这些类为插件类. 下边是一种简单的实现方法: Class ...
- yum node.js
很久之前安装过windows下以及Mac下的node,感觉还是很方便的,不成想今天安装linux下的坑了老半天,特此记录. 首先去官网下载代码,这里一定要注意安装分两种,一种是Source Code源 ...
- php将unicode编码转为utf-8方法
介绍 在前端开发中,为了让中文在不同的环境下都能很好的显示,一般是将中文转化为unicode格式,即\u4f60,比如:"你好啊"的 unicode编码为"\u4f60\ ...
- 关于jQuery中的ajax的方法介绍
jQuery提供一系列Ajax函数方便我们调用Ajax, 其中最核心也是最复杂的是jQuery.ajax(),所有的其他Ajax函数都是它的一个简化调用.当我们想要完全控制Ajax时可以 ...