Java的日期格式化常用方法_java 日期格式化-程序员宅基地

技术标签: java  开发语言  

一般常用格式化类DateFormat和SimpleDateFormat的format(Date time)方法进行格式化日期.

1. 首先介绍java.text.SimpleDateFormat类.

public class SimpleDateFormat extends

SimpleDateFormat

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

日期和时间模式

日期和时间格式由日期和时间模式字符串指定。在日期和时间模式字符串中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行解释。"''" 表示单引号。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在解析时与输入字符串进行匹配。

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

字母 日期或时间元素 表示 示例 GEra 标志符 ADy年 1996; 96M年中的月份 July; Jul; 07w年中的周数 27W月份中的周数 2D年中的天数 189d月份中的天数 10F月份中的星期 2E星期中的天数 Tuesday; TueaAm/pm 标记 PMH一天中的小时数(0-23) 0k一天中的小时数(1-24) 24Kam/pm 中的小时数(0-11) 0ham/pm 中的小时数(1-12) 12m小时中的分钟数 30s分钟中的秒数 55S毫秒数 978z时区 Pacific Standard Time; PST; GMT-08:00Z时区 -0800示例以下示例显示了如何在美国语言环境中解释日期和时间模式。给定的日期和时间为美国太平洋时区的本地时间 2001-07-04 12:08:56。 日期和时间模式 结果 "yyyy.MM.dd G 'at' HH:mm:ss z"2001.07.04 AD at 12:08:56 PDT"EEE, MMM d, ''yy"Wed, Jul 4, '01"h:mm a"12:08 PM"hh 'o''clock' a, zzzz"12 o'clock PM, Pacific Daylight Time"K:mm a, z"0:08 PM, PDT"yyyyy.MMMMM.dd GGG hh:mm aaa"02001.July.04 AD 12:08 PM"EEE, d MMM yyyy HH:mm:ss Z"Wed, 4 Jul 2001 12:08:56 -0700"yyMMddHHmmssZ"010704120856-0700"yyyy-MM-dd'T'HH:mm:ss.SSSZ"2001-07-04T12:08:56.235-0700

常用构造方法 :

 SimpleDateFormat sFormat = new SimpleDateFormat(String pattern);

或者

SimpleDateFormat sFormat = new SimpleDateFormat();

sFormat.applyPattern(String pattern); 

或者

DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL, Locale.getDefault());

//具体可取DateFormat.SHORT,DEFAULT,LONG,FULL等

 2. 常用的日期类有Calendar和GregorianCalendar,后者是前者的子类,并拓展了一些功能,例如是否为闰年等方法.两者用法基本类似

note:在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和解析日期字符串。Date 中的相应方法已废弃。 

 常用构造方法:

Calendar c = Calendar.getInstance();

c.setTime(Date date);//或 c.setTime(int year,int month, int day,int hour,int minute , int second);

GregorianCalendar gC = new GregorianCalendar( int year,int month, int day,int hour,int minute , int second ) ;//方法可重载,具体看API

3.示例代码 (这里使用了log4j,只需将代码中的log.info改成相应的System.out.println,置于main()方法中运行即可)

public void testCalendar(){
        Calendar c1 = Calendar.getInstance();
        c1.setTime(new Date());
        
        //当Calendar中设置的时间超过每项的最大值时,会以减去最大值后的值设置时间,例如月份设置13,最后会变成13-11=02
        Calendar c2 = Calendar.getInstance();
        c2.set(1920, 13, 24, 22, 32, 22);
        //使用pattern
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd H:m:s");
        SimpleDateFormat format2 = new SimpleDateFormat("yy-MM-dd H:m:s");
        SimpleDateFormat format3 = new SimpleDateFormat("y-M-d H:m:s");
        //使用约定格式 DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL, Locale.getDefault());

        //获取Calendar中各个属性字段的方法
        log.info("The year now time is " + c1.get(c1.YEAR));
        log.info("The month now time is " + c1.get(c1.MONTH));
        log.info("The day_of_month now time is " + c1.get(c1.DAY_OF_MONTH));
        log.info("The day_of_week now time is " + c1.get(c1.DAY_OF_WEEK));
        log.info("今天是在这个月的第几个星期: " + c1.get(c1.DAY_OF_WEEK_IN_MONTH));
        log.info("The day_of_year now time is " + c1.get(c1.DAY_OF_YEAR));
        //不同模式对应的格式略有不同,有时间可以测试多一点模式
        log.info("yyyy-MM-dd H:m:s-->" + format.format(c1.getTime()));
        log.info("yy-MM-dd H:m:s-->" + format2.format(c1.getTime()));
        log.info("y-M-d H:m:s-->" + format3.format(c1.getTime()));
 log.info("DateFormat.FULL-->" + dateFormat.fomat(c1.getTime()));

        log.info(format.format(c2.getTime()));

}  

转载:http://www.cnblogs.com/mailingfeng/archive/2011/07/28/2120422.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lz958942/article/details/7645083

智能推荐

【故障诊断】基于金豺算法优化双向长短期记忆神经网络GJO-BILSTM-Adaboost的Adaboost实现故障诊断附matlab代码-程序员宅基地

文章浏览阅读45次。故障诊断一直是工程领域中一个重要的研究方向。随着技术的不断发展,人们对于如何准确、快速地诊断故障提出了更高的要求。近年来,机器学习和深度学习技术的出现为故障诊断带来了新的机遇和挑战。在这篇博文中,我们将介绍一种基于金豺算法优化双向长短期记忆神经网络的Adaboost实现的故障诊断算法流程。该算法被称为GJO-biLSTM-Adaboost,它结合了金豺算法、双向长短期记忆神经网络和Adaboost算法的优势,能够在故障诊断中取得较好的效果。首先,让我们来介绍一下金豺算法。

NLP基础——语言模型(LM)_..n..刂*lm-程序员宅基地

文章浏览阅读3.3k次。文章目录NLP基础:语言模型(LM)1. 模型评估(概率估计)2. 平滑方法3. LM在拼写纠正(Spell Correction)中的应用NLP基础:语言模型(LM)语言模型(LM,Language Model)就是用来判断某个句子是否语义通顺。首先对句子进行分词,句子的概率可以表示为各个词的联合概率:P(s)=P(w1,w2,...,wn)P(s)=P(w_1,w_2,...,w_n)P(s)=P(w1​,w2​,...,wn​)。根据Chain rule: P(A,B,C,D)=P(A)P(B|_..n..刂*lm

基于SSH网上银行综合管理系统_基于ssh的网上银行-程序员宅基地

文章浏览阅读1.1w次,点赞3次,收藏5次。内容简述:该系统体系结构包括:视图层,应用服务层,数据处理层。系统功能包括:账户管理,转账管理,付款管理,系统管理,统计查询。本课题的目的是使银行账目管理清晰化,透明化,便于操作,易于管理,实现功能:(1)账户管理:对于未注册用户开户:进入账户申请界面,填写注册信息,经过系统审核。//用户信息:用户名。密码。姓名。身份证号。手机号。注册成功,管理员审核以后才可以登录,登录的个人信息里面系统自动..._基于ssh的网上银行

文章17 ngx_http_request_t结构体详解_ngx_http_headers_in_t 目录-程序员宅基地

文章浏览阅读2w次,点赞2次,收藏13次。欢迎转载,转载请注明http://blog.csdn.net/yankai0219/article/details/8220621由于本人能力有限,对于这些结构体的成员变量的解释,肯定有所差池,还请大家指出,大家共同学习主要内容:0.序一、ngx_http_request_t结构体解释二、ngx_http_request_body_t结构体三ngx_http_ngx_http_headers_in_t 目录

js把年月日时间转化成刚刚,几分钟前,几小时前,几天前(完整代码)_js 把日期时间转化为几分钟前-程序员宅基地

文章浏览阅读4.6k次,点赞2次,收藏10次。<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script> var pretime = &q_js 把日期时间转化为几分钟前

python xml xpath定位_python之Xpath语法-程序员宅基地

文章浏览阅读942次。python视频教程栏目介绍python的Xpath语法。一、XMl简介(一)什么是 XMLXML 指可扩展标记语言(EXtensible)XML 是一种标记语言,很类似 HTML。XML 的设计宗旨是传输数据,而非显示数据。XML 的标签需要我们自行定义。XML 被设计为具有自我描述性。XML 是 W3C 的推荐标准。W3School 官方文档:http://www.w3school.com.c..._python xml xpath

随便推点

CodeForces 50 A.Domino piling(水~)_codeforces domino filing-程序员宅基地

文章浏览阅读716次。Description给出一个m∗nm*n的区域,问最多可以放多少个2∗12*1的砖Input两个整数m,n(1≤m,n≤16)m,n(1\le m,n\le 16)Output输出最多可以放多少块砖Sample Input2 4Sample Output4Solutionn,mn,m有一个为偶数,显然可以铺满,ans=nm2ans=\frac{nm}{2}n,mn,m均为奇数,显然前n−1n-1列_codeforces domino filing

win11修改任务栏中时间的字体颜色_win11时间颜色改成白色-程序员宅基地

文章浏览阅读1.8w次,点赞29次,收藏31次。TranslucentTB设置win11位透明任务栏时,字体位黑色,看不到的解决方法按“win+R”或者点击开始菜单,找到运行,在运行输入框里面输入“regedit”,打开注册表编辑器如下图所示:进入路径下修改:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\PersonalizeColorPrevalence # 值=0 黑色;值=1或2 白色..._win11时间颜色改成白色

python绘图时将输入的乱序横坐标进行重新排序_python 按照横坐标排序-程序员宅基地

文章浏览阅读2.7k次。最近用tkinter制作exe程序时,要实现程序绘图可视化功能,绘制的折线图是展示每年的各个指标,输入的年份可能不按照从小到大的顺序,但是要求绘制出来的图必须按照年份的顺序,不然岂不是很傻下面截取了核心代码来实现该功能。# 首先生成一个原始的list,用于获取横坐标及各折线的纵坐标,这里list1[0]是年份,1-5存放纵坐标list1=[[],[],[],[],[],[]]list1[0].append(x)list1[1].append(a1)list1[2].append(c1)l_python 按照横坐标排序

集合的二进制表示。_集合中的二进制是什么-程序员宅基地

文章浏览阅读1.9k次。一些不大的数的集合,可以用二进制的形式来表示,注意这里的集合没有重复元素。集合的存储方法是用一串二进制的数存,第i位表示i这个数是否在集合中。设集合中最大的数不超过(1集合的运算因为是二进制表示,A|B、A&B、A^B、分别对应集合的并,交和对称差。子集 元素的输出从1到n枚举,如果在s中就输出,代码:void print_element(int n,int s){_集合中的二进制是什么

中文分词工具 MiNLP-Tokenizer-程序员宅基地

文章浏览阅读1k次。MiNLP-Tokenizer1. 工具介绍MiNLP-Tokenizer是小米AI实验室NLP团队自研的中文分词工具,基于深度学习序列标注模型实现,在公开测试集上取得了SOTA效果。其具备以下特点:分词效果好:基于深度学习模型在大规模语料上进行训练,粗、细粒度在SIGHAN 2005 PKU测试集上的F1分别达到95.7%和96.3%[注1]轻量级模型:精简模型参数和结构,模型仅有..._microtokenizer自定义词典

Navicat将mysql表结构导成oracle表结构_navicat怎么把mysql表导出成oracle建表语句-程序员宅基地

文章浏览阅读2.3k次,点赞2次,收藏13次。1,选中对应的表右键逆向表到模型2.点击右上角文件转换模型为3.模型选择物理,数据库oracle,选择对应的版本4.新弹出的模型点击右上角文件,导出sql5.选择路径导出sql..._navicat怎么把mysql表导出成oracle建表语句