Java中时间日期格式化
2015-12-23 02:03
447 查看
1、与日期时间相关的类:
第一:java.util.Date;将时间作为一个整体使用、处理时,使用Date类较为简便
第二:java.util.Calender;要处理时间的一部分,如月、分时,使用Calendar类较为简便
第三:java.text.DateFormat抽象类,是SimpleDateFormate的父类
第四:java.text.SimpleDateFormate时间日期转换时,用的最多的类
2、日期和时间模式
日期和时间格式由日期和时间模式字符串指定。
在日期和时间模式字符串中,未加引号的字母
所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在解析时与输入字符串进行匹配。
定义了以下模式字母(所有其他字符
为什么有的格式大写,有的格式小写,那是怕避免混淆,例如MM是月份,mm是分;HH是24小时制,而hh是12小时制
3、格式转换
DateFormat类中的两个方法:
publicDateparse(Stringsource)throwsParseException
A.parse(B):将字符串B按照A的形式解析成DateA是DateFormat或者其子类的实例
publicfinalStringformat(Datedate)
A.format(B):将一个Date类型的B格式化为A格式的字符串A是DateFormat或者其子类的实例
实例:将2008-10-1910:11:30.345转化为2008年10月19日10时11分30秒345毫秒
publicstaticvoidmain(Stringargs[]){
StringstrDate="2008-10-1910:11:30.345";
SimpleDateFormatsdf1=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss.SSS");//实例化模板对象
SimpleDateFormatsdf2=newSimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒SSS毫秒");
Dated=null;
try{
d=sdf1.parse(strDate);//将给定的字符串中解析成日期
System.out.println(d);//SunOct1910:11:30CST2008
}catch(Exceptione){
e.printStackTrace();
}
System.out.println(sdf2.format(d));//将日期格式化为字符串2008年10月19日10时11分30秒345毫秒
}
4、日期比较、加减
Date类中的两个方法:
实例:求出sourceTime,过minuteNumber分钟后的时间
[/code]
5、时间戳:某个时间点的时间戳就是:该时间点距1970年1月1日00:00:00相差的毫秒数
获得当前时间的时间戳:newDate().getTime();System.currentTimeMillis();
第一:java.util.Date;将时间作为一个整体使用、处理时,使用Date类较为简便
第二:java.util.Calender;要处理时间的一部分,如月、分时,使用Calendar类较为简便
第三:java.text.DateFormat抽象类,是SimpleDateFormate的父类
第四:java.text.SimpleDateFormate时间日期转换时,用的最多的类
2、日期和时间模式
日期和时间格式由日期和时间模式字符串指定。
在日期和时间模式字符串中,未加引号的字母
'A'到
'Z'和
'a'到
'z'被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号(
')引起来,以免进行解释。
"''"表示单引号。
所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在解析时与输入字符串进行匹配。
定义了以下模式字母(所有其他字符
'A'到
'Z'和
'a'到
'z'都被保留):
字母 | 日期或时间元素 | 表示 | 示例 |
---|---|---|---|
G | Era标志符 | AD | |
y | 年 | 1996; 96 | |
M | 年中的月份 | July; Jul; 07 | |
w | 年中的周数 | 27 | |
W | 月份中的周数 | 2 | |
D | 年中的天数 | 189 | |
d | 月份中的天数 | 10 | |
F | 月份中的星期 | 2 | |
E | 星期中的天数 | Tuesday; Tue | |
a | Am/pm标记 | PM | |
H | 一天中的小时数(0-23) | 0 | |
k | 一天中的小时数(1-24) | 24 | |
K | am/pm中的小时数(0-11) | 0 | |
h | am/pm中的小时数(1-12) | 12 | |
m | 小时中的分钟数 | 30 | |
s | 分钟中的秒数 | 55 | |
S | 毫秒数 | 978 | |
z | 时区 | PacificStandardTime; PST; GMT-08:00 | |
Z | 时区 | -0800 |
3、格式转换
DateFormat类中的两个方法:
publicDateparse(Stringsource)throwsParseException
A.parse(B):将字符串B按照A的形式解析成DateA是DateFormat或者其子类的实例
publicfinalStringformat(Datedate)
A.format(B):将一个Date类型的B格式化为A格式的字符串A是DateFormat或者其子类的实例
实例:将2008-10-1910:11:30.345转化为2008年10月19日10时11分30秒345毫秒
publicstaticvoidmain(Stringargs[]){
StringstrDate="2008-10-1910:11:30.345";
SimpleDateFormatsdf1=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss.SSS");//实例化模板对象
SimpleDateFormatsdf2=newSimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒SSS毫秒");
Dated=null;
try{
d=sdf1.parse(strDate);//将给定的字符串中解析成日期
System.out.println(d);//SunOct1910:11:30CST2008
}catch(Exceptione){
e.printStackTrace();
}
System.out.println(sdf2.format(d));//将日期格式化为字符串2008年10月19日10时11分30秒345毫秒
}
4、日期比较、加减
Date类中的两个方法:
publiclonggetTime()返回自1970年1月1日00:00:00GMT以来此Date对象表示的毫秒数。
publicvoidsetTime(longtime)设置此[code]Date对象,以表示1970年1月1日00:00:00GMT以后
time毫秒的时间点。
实例:求出sourceTime,过minuteNumber分钟后的时间
[/code]
publicstaticStringgetPreTime(StringsourceTime,StringminuteNumber){ SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); Stringmydate1=""; try{ Datedate1=format.parse(sourceTime); longTime=(date1.getTime()/1000)+Integer.parseInt(minuteNumber)*60; date1.setTime(Time*1000); mydate1=format.format(date1); }catch(Exceptione){} returnmydate1; }
5、时间戳:某个时间点的时间戳就是:该时间点距1970年1月1日00:00:00相差的毫秒数
获得当前时间的时间戳:newDate().getTime();System.currentTimeMillis();
相关文章推荐
- Java 注解
- Java Script基础(十二) 正则表达式
- Java Script基础(十一) 表单验证
- Java Script基础(九) 下拉列表对象
- Java Script基础(八) Array数组对象
- Java Script基础(七) HTML DOM模型
- Java Script基础(六) DOM模型
- Java Script基础(五) 内置对象Date
- Java Script基础(四) BOM模型
- Java Script基础(三) 函数
- Java Script基础(二) 基本语法
- Java Script基础(一)
- 针对java实验的思考(四)
- Java 多线程-上课总结
- Java Scoket编程
- java 解析XML文档
- java继承覆盖总结
- 针对java实验的思考(三)
- java中的会话管理
- 关于java中位运算的左移、右移、无符号右移