Java基础之一组有用的类——生成日期和时间(TryDateFormats)
控制台程序。
java.util包中含有相当多的类涉及日期和时间,包括Date类、Calendar类和GregorianCalendar类。
Date类对象其实定义了精确到毫秒的时刻,从1970年1月1日00:00:00时(GMT,格林威治时间)开始算起。因为是相对于特定的时刻,所以也对应着日期。
Calendar类是GregorianCalendar的基类,表示每个人都习惯使用的日/月/年日历,另外还提供了从Date对象中获取日、月和年信息的方法。
DateFormat类是抽象类,可用于创建Date对象的有意义的字符串表示。但这个类不在java.util包中,而在java.text包中定义。日期和时间有4中标准表示格式,它们用DateFormat类中定义的常量标识:SHORT/MEDIUM/LONG/FULL.
java.util.Locale对象标识了国家、区域或语言特有的信息。可以为特定的国家、语言、国家和语言以及国家和语言的变体定义Locale对象。
DateFormat类是抽象的,所以不能直接创建类的对象,但可以使用类中定义的静态方法来获得DateFormat对象,这些方法返回DateFormat类型的值。DateFormat对象封装了一个Locale和一个整数日期样式,这个样式有DateFormat类中定义的常量定义,即前面的SHORT、MEDIUM、LONG或FULL。
可以创建DateFormat实例,把Date对象格式化为时间、日期或日期和时间。创建各种DateFormat对象的静态方法有:返回时间格式化器的getTimeInstance()、返回日期格式化器的getDateInstance()以及返回格式化日期和时间的getDateTimeInstance()。
为指定的国家、样式和将要格式化的数据种类(日期、时间或两者)创建DateFormatd对象后,就准备好了从Date对象生成字符串。
只需要把Date对象传送给DateFormat对象的format()方法即可。例如:
Date today = new Date();
DateFormat fmt = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL,Locale.US);
String formatted = fmt.format(today);
第一条语句创建了一个Date对象,表示执行Date构造函数时的时刻。
第二条语句创建了一个DateFormat对象,可以格式化Date对象封装的日期和时间。这个例子把日期和时间的格式化样式都指定为DateFormat类中的FULL常量,这样就为日期和时间提供了最详细的信息。第三个参数Locale.US决定了格式化应满足美国的要求。Locale类定义了用于其他主要国家和语言的常量。
第三条语句把fmt对象的format()方法应用于Date对象。
执行这些语句后,字符串变量formatted就包含了创建Date对象today时的完整日期和时间。
1 // Trying date formatting 2 import java.util.Locale; 3 import java.text.DateFormat; 4 import java.util.Date; 5 import static java.util.Locale.*; // Import names of constants 6 import static java.text.DateFormat.*; // Import names of constants 7 8 public class TryDateFormats { 9 public enum Style {FULL, LONG, MEDIUM, SHORT} 10 11 public static void main(String[] args) { 12 Date today = new Date(); 13 Locale[] locales = {US, UK, GERMANY, FRANCE}; 14 15 // Output the date for each locale in four styles 16 DateFormat fmt = null; 17 for(Locale locale : locales) { 18 System.out.println("\nThe Date for " + locale.getDisplayCountry() + ":"); 19 for (Style style : Style.values()) { 20 fmt = DateFormat.getDateInstance(style.ordinal(), locale); 21 System.out.println( " In " + style + " is " + fmt.format(today)); 22 } 23 } 24 } 25 }
输出在嵌套的for循环中生成。外层循环迭代国家,内层循环是基于集合的for循环,为Styles枚举中的每个国家迭代样式。ordinal()方法返回值在枚举中的序号。使用序号把样式指定为getDateInstance()方法的第一个参数。
转载于:https://www.cnblogs.com/mannixiang/p/3439551.html
Java基础之一组有用的类——生成日期和时间(TryDateFormats)相关推荐
- java对象生成的时间_Java基础之一组有用的类——生成日期和时间(TryDateFormats)...
控制台程序. java.util包中含有相当多的类涉及日期和时间,包括Date类.Calendar类和GregorianCalendar类. Date类对象其实定义了精确到毫秒的时刻,从1970年1月 ...
- Java基础学习——第十章 枚举类注解
Java基础学习--第十章 枚举类&注解 一.枚举类(enum) 1. 枚举类的概念 枚举类:类的对象只有有限个,确定的 线程状态:创建.就绪.运行.阻塞.死亡 当需要定义一组常量时,强烈建议 ...
- Java基础语法(七)——类和对象
文章目录 Java基础语法(七)--类和对象 一.类和对象的初步认识 二. 类和类的实例化 1.类的定义 2.实例化对象 3.如何使用类中的数据 三. 类的成员 1. 字段/属性/成员变量 (1)实例 ...
- java之进阶语法(Object类及日期时间类)
一.关于Object类 (一)概述 java.lang.object类是java语言的根类,即是所有类的父类. 若一个类没有指定父类,那么默认继承自Object类 object类常用的方法有以下: - ...
- 【小家java】java8新特性之---全新的日期、时间API(JSR 310规范),附SpringMVC、Mybatis中使用JSR310的正确姿势
[小家java]java5新特性(简述十大新特性) 重要一跃 [小家java]java6新特性(简述十大新特性) 鸡肋升级 [小家java]java7新特性(简述八大新特性) 不温不火 [小家java ...
- Matlab:生成日期与时间的序列
生成日期与时间的序列 两个端点间已知步长的日期时间或持续时间值的序列 使用默认步长 指定步长 比较固定长度持续时间和日历持续时间的步长 整数步长 添加持续时间或日历持续时间以创建日期的序列 指定日期或 ...
- Java基础巩固(一)类,接口,枚举,常用API,集合,泛型,正则,数据结构
一.static.final.权限关键字,代码块,接口,枚举 1 关键字 2 代码块 3 接口 4 枚举 idea快捷键 shift + enter 换行 ctrl + Alt + shift + U ...
- Java基础——数组应用之StringBuilder类和StringBuffer类
接上文:Java基础--数组应用之字符串String类 一.StringBuffer类 StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和 ...
- 【Java基础】 随机数的3种生成方法
[Java基础]之3种随机数的生成方法 目录 前言: 第一种:new Random(): 第二种:Math.random(); 第三种:currentTimeMillis(): 前言: 生成指定范围内 ...
最新文章
- Codeforces 446C —— DZY Loves Fibonacci Numbers(线段树)
- 设计模式(简单工厂模式)
- python3.7.2安装-Centos7.6,安装python3.7.2
- 阿里云MVP第14期全球发布:云时代2.0,遇见科技追梦者!
- 论文浅尝 | 动态词嵌入
- 使用lambdaquery() 报空指针异常_Java 14 来势汹汹,这回让空指针无处遁形!!
- vue axios封装以及登录token过期跳转问题
- 工程linux下创建svn仓库目录结构
- mysql连接数过多
- Python3 字节码详解
- linux下的ftp命令详解,Linux FTP命令详解
- 声散射 matlab,一种基于声波散射的高强度聚焦超声声场测量方法与流程
- GBase 8a MPP灾备方案
- 赢在测试2:中国软件测试专家访谈录
- 博弈论(Game Theory)
- 电视购物中心小型呼叫中心系统二次开发
- Qt on Mac 开发之 读取苹果系统OSX上的plist资源文件
- 什么因素让唐僧是一个领导,而孙悟空只是一个打工者呢?
- 思维导图(1-20)
- 6个高效办公的Excel小技巧,学会让你高效办公
热门文章
- 关于Django部分
- python工具之myql数据库操作
- JConsole监控远程Tomcat服务器
- 定义根目录, window格式 转化为linux格式
- HDU1040-As Easy As A+B
- 移动master 数据库
- MongoDB负载信息一目了然 阿里云HDM重磅发布MongoDB监控和诊断功
- bd3.2 Python高级
- XtraBackup出现 Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
- protobuf生成