Java 时间日期使用 详细整理 --音
来源:互联网 发布:地址匹配算法 编辑:程序博客网 时间:2024/05/21 19:35
1.Date的API简介
Date() 分配 Date 对象并用当前时间初始化此对象,以表示分配它的时间(精确到毫秒)。
方法摘要
-------------
boolean after(Date when)
测试此日期是否在指定日期之后。
boolean before(Date when)
测试此日期是否在指定日期之前。
Object clone()
返回此对象的副本。
int compareTo(Date anotherDate)
比较两个日期的顺序。
boolean equals(Object obj)
比较两个日期的相等性。
long getTime()
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
int hashCode()
返回此对象的哈希码值。
void setTime(long time)
设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。
String toString()
把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中:
dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。
mon 是月份 (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)。
dd 是一月中的某一天(01 至 31),显示为两位十进制数。
hh 是一天中的小时(00 至 23),显示为两位十进制数。
mm 是小时中的分钟(00 至 59),显示为两位十进制数。
ss 是分钟中的秒数(00 至 61),显示为两位十进制数。
zzz 是时区(并可以反映夏令时)。标准时区缩写包括方法 parse 识别的时区缩写。如果不提供时区信息,则 zzz 为空,即根本不包括任何字符。
yyyy 是年份,显示为 4 位十进制数
2.DateFormat抽象类的使用
//系统自定义格式
//获取日期格式对象。具体着默认的风格。 FULL LONG等可以指定风格。要格式化不同语言环境的日期,
可在 getDateInstance() 的调用中指定它。
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG);
//如果风格是自定义的如何解决呢?
dateFormat = new SimpleDateFormat("yyyy--MM--dd");
String str_date = dateFormat.format(date);//按自定义格式输出
dateFormat = new SimpleDateFormat("yyyy--MM--dd");
String str_date = dateFormat.format(date);//按自定义格式输出
//还可使用 DateFormat 进行分析
dateFormat = new SimpleDateFormat("yyyy---MM---dd");
Date date = dateFormat.parse(str_date); //按自定义格式分析时间
Date date = dateFormat.parse(str_date); //按自定义格式分析时间
使用 getDateInstance 来获得该国家的标准日期格式。
getTimeInstance 可获得该国家的时间格式。使用 getDateTimeInstance 可获得日期和时间格式。
3.SimpleDateFormat(DateFormat的直接子类)的使用
<span style="color:#cc33cc;">import java.util.Date;import java.util.Locale;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;public class TestSimpleDateFormat {public static void main(String args[]) throws ParseException {TestSimpleDateFormat test = new TestSimpleDateFormat();test.testDateFormat();}public void testDateFormat() throws ParseException {// 创建日期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默认的日期格式,默认的区域 : "+ df1.format(date));System.out.println("按照指定格式 yyyy-MM-dd hh:mm:ss EE ,系统默认区域 :"+ df2.format(date));System.out.println("按照日期的FULL模式,区域设置为中文 : "+ df3.format(date));System.out.println("按照指定格式 yyyy年MM月dd日 hh时mm分ss秒 EE ,区域为中文 : "+ df4.format(date));System.out.println("按照指定格式 yyyy-MM-dd hh:mm:ss EE ,区域为美国 : "+ df5.format(date));System.out.println("按照指定格式 yyyy-MM-dd ,系统默认区域 : "+ df6.format(date));// 将符合该格式的字符串转换为日期,若格式不相配,则会出错Date date1 = df1.parse("07-11-30 下午2:32");Date date2 = df2.parse("2007-11-30 02:51:07 星期五");Date date3 = df3.parse("2007年11月30日 星期五");Date date4 = df4.parse("2007年11月30日 02时51分18秒 星期五");Date date5 = df5.parse("2007-11-30 02:51:18 Friday");Date date6 = df6.parse("2007-11-30");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);}}</span>
4.Calendar(抽象类)
Calendar中些陷阱,很容易掉下去:
1、Calendar的星期是从周日开始的,常量值为0。
2、Calendar的月份是从一月开始的,常量值为0。
3、Calendar的每个月的第一天值为1。
package com.ApiApi.www;import java.util.Calendar;public class CalendarDemo {public static void main(String[] args) {Calendar time=Calendar.getInstance();//time.set(2015, 10, 1);//设置时间//time.add(Calendar.YEAR, 3);//时间偏移//time.add(Calendar.MONTH, 3);//时间偏移//time.add(Calendar.DAY_OF_MONTH, 50);//时间偏移Demo(time);DAY_OF_MONTH();}public static void Demo(Calendar time){int year=time.get(Calendar.YEAR);int month=time.get(Calendar.MONTH);int day=time.get(Calendar.DAY_OF_MONTH);int week=time.get(Calendar.DAY_OF_WEEK);System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week));}private static String getWeek(int i) {// TODO Auto-generated method stubString[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};return weeks[i];}/** *判断某一年中二月有几天 *输入一年份 set(year,2,1); *进行时间偏移add(Calendar.DAY_OF_MONTH,-1); *打印时间选择get(Calendar.DAY_OF_MONTH); */public static void DAY_OF_MONTH(){Calendar time=Calendar.getInstance();time.set(2000, 2, 1);time.add(Calendar.DAY_OF_MONTH,-1);int days=time.get(Calendar.DAY_OF_MONTH);System.out.println(days);}}
5.GregorianCalendar(Calendar的直接子类)
GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家使用的标准日历系统。结合Calendar抽象类使用。
import java.util.*;
import java.text.SimpleDateFormat;
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2007-11-30
* Time: 15:06:57
* Calendar的使用测试
*/
public class TestCalendar {
public static void main(String args[]) {
TestCalendar testCalendar = new TestCalendar();
testCalendar.testCalendar();
}
public void testCalendar() {
//创建Calendar的方式
Calendar now1 = Calendar.getInstance();
Calendar now2 = new GregorianCalendar();
Calendar now3 = new GregorianCalendar(2007, 10, 30);
Calendar now4 = new GregorianCalendar(2007, 10, 30, 15, 55); //陷阱:Calendar的月份是0~11
Calendar now5 = new GregorianCalendar(2007, 10, 30, 15, 55, 44);
Calendar now6 = new GregorianCalendar(Locale.US);
Calendar now7 = new GregorianCalendar(TimeZone.getTimeZone("GMT-8:00"));
//通过日期和毫秒数设置Calendar
now2.setTime(new Date());
System.out.println(now2);
now2.setTimeInMillis(new Date().getTime());
System.out.println(now2);
//定义日期的中文输出格式,并输出日期
SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒 E", Locale.CHINA);
System.out.println("获取日期中文格式化化输出:" + df.format(now5.getTime()));
System.out.println();
System.out.println("--------通过Calendar获取日期中年月日等相关信息--------");
System.out.println("获取年:" + now5.get(Calendar.YEAR));
System.out.println("获取月(月份是从0开始的):" + now5.get(Calendar.MONTH));
System.out.println("获取日:" + now5.get(Calendar.DAY_OF_MONTH));
System.out.println("获取时:" + now5.get(Calendar.HOUR));
System.out.println("获取分:" + now5.get(Calendar.MINUTE));
System.out.println("获取秒:" + now5.get(Calendar.SECOND));
System.out.println("获取上午、下午:" + now5.get(Calendar.AM_PM));
System.out.println("获取星期数值(星期是从周日开始的):" + now5.get(Calendar.DAY_OF_WEEK));
System.out.println();
System.out.println("---------通用星期中文化转换---------");
String dayOfWeek[] = {"", "日", "一", "二", "三", "四", "五", "六"};
System.out.println("now5对象的星期是:" + dayOfWeek[now5.get(Calendar.DAY_OF_WEEK)]);
System.out.println();
System.out.println("---------通用月份中文化转换---------");
String months[] = {"一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"};
System.out.println("now5对象的月份是: " + months[now5.get(Calendar.MONTH)]);
}
}
import java.text.SimpleDateFormat;
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2007-11-30
* Time: 15:06:57
* Calendar的使用测试
*/
public class TestCalendar {
public static void main(String args[]) {
TestCalendar testCalendar = new TestCalendar();
testCalendar.testCalendar();
}
public void testCalendar() {
//创建Calendar的方式
Calendar now1 = Calendar.getInstance();
Calendar now2 = new GregorianCalendar();
Calendar now3 = new GregorianCalendar(2007, 10, 30);
Calendar now4 = new GregorianCalendar(2007, 10, 30, 15, 55); //陷阱:Calendar的月份是0~11
Calendar now5 = new GregorianCalendar(2007, 10, 30, 15, 55, 44);
Calendar now6 = new GregorianCalendar(Locale.US);
Calendar now7 = new GregorianCalendar(TimeZone.getTimeZone("GMT-8:00"));
//通过日期和毫秒数设置Calendar
now2.setTime(new Date());
System.out.println(now2);
now2.setTimeInMillis(new Date().getTime());
System.out.println(now2);
//定义日期的中文输出格式,并输出日期
SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒 E", Locale.CHINA);
System.out.println("获取日期中文格式化化输出:" + df.format(now5.getTime()));
System.out.println();
System.out.println("--------通过Calendar获取日期中年月日等相关信息--------");
System.out.println("获取年:" + now5.get(Calendar.YEAR));
System.out.println("获取月(月份是从0开始的):" + now5.get(Calendar.MONTH));
System.out.println("获取日:" + now5.get(Calendar.DAY_OF_MONTH));
System.out.println("获取时:" + now5.get(Calendar.HOUR));
System.out.println("获取分:" + now5.get(Calendar.MINUTE));
System.out.println("获取秒:" + now5.get(Calendar.SECOND));
System.out.println("获取上午、下午:" + now5.get(Calendar.AM_PM));
System.out.println("获取星期数值(星期是从周日开始的):" + now5.get(Calendar.DAY_OF_WEEK));
System.out.println();
System.out.println("---------通用星期中文化转换---------");
String dayOfWeek[] = {"", "日", "一", "二", "三", "四", "五", "六"};
System.out.println("now5对象的星期是:" + dayOfWeek[now5.get(Calendar.DAY_OF_WEEK)]);
System.out.println();
System.out.println("---------通用月份中文化转换---------");
String months[] = {"一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"};
System.out.println("now5对象的月份是: " + months[now5.get(Calendar.MONTH)]);
}
}
---------------------------------------------------------------------
java.util.GregorianCalendar[time=1196414388324,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2007,MONTH=10,WEEK_OF_YEAR=48,WEEK_OF_MONTH=5,DAY_OF_MONTH=30,DAY_OF_YEAR=334,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=5,AM_PM=1,HOUR=5,HOUR_OF_DAY=17,MINUTE=19,SECOND=48,MILLISECOND=324,ZONE_OFFSET=28800000,DST_OFFSET=0]
java.util.GregorianCalendar[time=1196414388324,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2007,MONTH=10,WEEK_OF_YEAR=48,WEEK_OF_MONTH=5,DAY_OF_MONTH=30,DAY_OF_YEAR=334,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=5,AM_PM=1,HOUR=5,HOUR_OF_DAY=17,MINUTE=19,SECOND=48,MILLISECOND=324,ZONE_OFFSET=28800000,DST_OFFSET=0]
获取日期中文格式化化输出:2007年11月30日 03时55分44秒 星期五
--------通过Calendar获取日期中年月日等相关信息--------
获取年:2007
获取月(月份是从0开始的):10
获取日:30
获取时:3
获取分:55
获取秒:44
获取上午、下午:1
获取星期数值(星期是从周日开始的):6
---------通用星期中文化转换---------
now5对象的星期是:五
---------通用月份中文化转换---------
now5对象的月份是: 十一月
java.util.GregorianCalendar[time=1196414388324,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2007,MONTH=10,WEEK_OF_YEAR=48,WEEK_OF_MONTH=5,DAY_OF_MONTH=30,DAY_OF_YEAR=334,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=5,AM_PM=1,HOUR=5,HOUR_OF_DAY=17,MINUTE=19,SECOND=48,MILLISECOND=324,ZONE_OFFSET=28800000,DST_OFFSET=0]
获取日期中文格式化化输出:2007年11月30日 03时55分44秒 星期五
--------通过Calendar获取日期中年月日等相关信息--------
获取年:2007
获取月(月份是从0开始的):10
获取日:30
获取时:3
获取分:55
获取秒:44
获取上午、下午:1
获取星期数值(星期是从周日开始的):6
---------通用星期中文化转换---------
now5对象的星期是:五
---------通用月份中文化转换---------
now5对象的月份是: 十一月
http://www.jb51.net/article/70674.htm更多用法
1 0
- Java 时间日期使用 详细整理 --音
- java日期时间使用
- Java日期时间使用总结
- Java日期时间使用总结
- java日期时间的使用
- Java日期时间使用总结
- Java日期时间使用总结
- Java日期时间使用总结
- Java日期时间使用总结
- Java日期时间使用总结
- Java日期时间使用总结
- Java日期时间使用总结
- Java日期时间使用总结
- 整理:不得不说的~关于Java时间日期小结
- java 使用simpleDateFormat格式化日期 时间
- java 使用simpleDateFormat格式化日期 时间
- java时间、日期使用与查询
- Java进阶(日期时间的使用)
- 位操作的快速幂
- Android Studio安装过程中出现一些问题的解决方法(都已解决)
- 第2周.项目4:用循环求
- ECSHOP商品页加入购物车弹出层仿淘宝效果
- SEO优化之——html页面相关总结
- Java 时间日期使用 详细整理 --音
- 学习记录-Qt读取条码扫描枪
- android中页面的跳转成功,但是页面上的布局丢失问题
- sphinx分布式配置
- 搭建php运行服务器 win8.1系统安装iis+php5.3+mysql+ZendGuardLoader说明
- 51nod1042 0到9的数量(数位dp)
- scanf()函数简介
- 微信开发系列(五)_消息,事件的处理
- A - Again Twenty Five!【思维题】