- 浏览: 151849 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zengsir2008:
怎么运行?
osgi ds 实例 -
liuyinhou:
用eclipse带的org.eclipse.osgi org ...
osgi ds 实例 -
liuyinhou:
怎么运行?
osgi ds 实例 -
wdhdd889:
用uri访问
可以有两种方式
1 直接使用url访问服务
2 ...
cxf+spring -
Javaxiaobao:
貌似是类似远程调用方法,xml数据是怎么传输呢?
cxf+spring
时间和日期中常用到的几个类:java.util.Date,
java.util.Calendar,
java.util.GregorainCalendar,
java.text.DateFormat,
java.text.SimpleDateFormat
java.util.Date :
表示特定瞬间,精确到毫秒
一天是 24 * 60 * 60 = 86400 秒
世界时(UT 或 UTC) , 格林威治时间 (GMT), 格林威治时(GMT)和世界时(UT)
是相等的,格林威治时(GMT) 是标准的"民间"称呼, 世界时(UT) 是相同标准的
科学称呼。UTC 和 UT 的区别是:UTC 是基于原子时钟的,UT 是基于天体观察的。
(中文版的jdk 真是好啊,跟科普教材是的,呵呵)
常用的构造方法 :
Date();
Date(long date)
(long date) 表示从标准基准时间(称为 "历元" epoch ,即 1970.1.1
00:00:00 GMT)经历的毫秒数。
还有一些构造方法已经 deprecated 了
主要的方法:(介绍几个常用的,详细的查询 jdk 文档)
boolean after(Date when) 测试日期在此日期之后。
boolean before(Date when) 测试日期在此日期之前。
Object clone() 返回此对象的副本
long getTime() 返回自 1970.1.1 00:00:00 GMT 后,此对象表示的毫秒数
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)。
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),显示为两位十进制数。 60,61 是因为有"润秒"
zzz 是时区(并可以反映夏令时)。标准时区缩写包括方法 parse 识别的时区缩写。
如果不提供时区信息,则 zzz 为空,即根本不包括任何字符。
yyyy 是年份,显示为 4 位十进制数。
使用 System.currentTimeMillis() 获得当前系统时间的毫秒数
java.util.Calendar :
Calendar 类是一个抽象类.
Calendar rightNow = Calendar.getInstance();
可以使用三种方法更改日历字段:set()、add() 和 roll()。
set(f, value) 将日历字段 f 更改为 value。
此外,它设置了一个内部成员变量,以指示日历字段 f 已经被更改。尽管日历字段
f 是立即更改的,但是直到下次调用 get()、getTime()、getTimeInMillis()、
add() 或 roll() 时才会重新计算日历的时间值(以毫秒为单位)。因此,多次调
用 set() 不会触发多次不必要的计算。
add(f, delta) 将 delta 添加到 f 字段中。这等同于调用
set(f, get(f) + delta)
roll(f, delta) 将 delta 添加到 f 字段中,但不更改更大的字段。
java.util.GregorianCalendar:
GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家
使用的标准日历系统。
java.text.DateFormat:
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并
分析日期或时间。
java.text.SimpleDateFormat:
SimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。
它允许进行格式化(日期 -> 文本)、分析(文本 -> 日期)和规范化。
SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。但是,
仍然建议通过 DateFormat 中的 getTimeInstance、getDateInstance 或
getDateTimeInstance 来新的创建日期-时间格式化程序。每一个这样的类方法
都能够返回一个以默认格式模式初始化的日期/时间格式化程序。可以根据需要使用
applyPattern 方法来修改格式模式。
日期和时间格式由日期和时间模式 字符串指定。
在日期和时间模式字符串中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z'
被解释为模式字母,用来表示日期或时间字符串元素。
引用
字母 日期或时间元素 表示 示例
G Era 标志符 Text AD
y 年 Year 1996; 96
M 年中的月份 Month July; Jul; 07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text Tuesday; Tue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard Time; PST; GMT-08:00
Z 时区 RFC 822 time zone -0800
引用
日期和时间模式 结果
"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
获得当前系统的毫秒数:
代码
package org.lokvin.example.calendar;
public class CalendarExample1 {
public static void main(String[] args) {
java.util.Date date = new java.util.Date();
//获得当前系统的毫秒数,自 1970.1.1 00:00:00 GMT
long time = System.currentTimeMillis();
java.util.Date date1 = new java.util.Date(time);
System.out.println("date = " + date.toString());
System.out.println("millisecond = " + time);
System.out.println("date1 = " + date1.toString());
}
}
运行结果:
引用
date = Mon Dec 04 16:01:16 CST 2006
millisecond = 1165219276771
date1 = Mon Dec 04 16:01:16 CST 2006
代码
package org.lokvin.example.calendar;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class CalendarExample2 {
public static void main(String[] args) {
//获得当前日期
Calendar calendar = Calendar.getInstance();
int era = calendar.get(Calendar.ERA);// 0 = BC, 1 = AD
System.out.println("ERA = " + era);
int year = calendar.get(Calendar.YEAR); //2006
System.out.println("YEAR = " + year);
int month = calendar.get(Calendar.MONTH);
//获得当前月份, 0..11 表示 JAN..DEC
System.out.println("Month = " + month);//0 = JAN ... 11 = DEC
int day = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println("Day of Month = " + day); // 1
//获得日期在本周的天数, Sun=1, Mon=2 ... Sta=7
int day_of_week = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println("Day of Week = " + day_of_week);
//获得当前时间 12 时制是 Calendar.HOUR
int hour12 = calendar.get(Calendar.HOUR);
//获得 AM ,PM , 0 = AM, 1 = PM
int ampm = calendar.get(Calendar.AM_PM);
System.out.println("hour 12 = " + hour12);
System.out.println("am pm = " + ampm); //0 = am , 1 = pm
//获得当前时间 24 时制 Calendar.HOUR_OF_DAY
int hour24 = calendar.get(Calendar.HOUR_OF_DAY);
System.out.println("hour 24 = " + hour24);
Calendar today = new GregorianCalendar(2006, Calendar.DECEMBER, 4);
//Calendar.getInstance() 得到当前具体到毫秒的一个时间点
System.out.println("calendar = " + calendar.getTime().toString());
//通过 new GregorianCalendar(2006, Calendar.DECEMBER, 4)
//生成的 calendar 除了指定的年,月,日其余为0(时分秒=0)
System.out.println("today = " + today.getTime().toString());
}
}
运行结果:
引用
ERA = 1
YEAR = 2006
Month = 11
Day of Month = 4
Day of Week = 2
hour 12 = 4
am pm = 1
hour 24 = 16
calendar = Mon Dec 04 16:22:42 CST 2006
today = Mon Dec 04 00:00:00 CST 2006
两个日期之间的比较:
代码
package org.lokvin.example.calendar;
import java.util.Calendar;
import java.util.GregorianCalendar;
/*
* 比较两个 calendar 对象之间的先后
*/
public class CalendarExample3 {
public static void main(String[] args) {
//日期比较
Calendar xmas = new GregorianCalendar(2006, Calendar.DECEMBER, 25);
Calendar newYear = new GregorianCalendar(2007, Calendar.JANUARY, 1);
//比较两个日期先后
boolean flag = xmas.before(newYear);
System.out.println("flag = " + flag);
flag = xmas.after(newYear);
System.out.println("flag = " + flag);
//两个日期相差的毫秒数
long timeDiffMillis = newYear.getTimeInMillis() - xmas.getTimeInMillis();
System.out.println("time diff millis = " + timeDiffMillis);
//两个日期相差的秒数
long diffSecs = timeDiffMillis / 1000;
System.out.println("time diff secs = " + diffSecs);
//两个日期相差的分钟
long diffMins = timeDiffMillis / (1000 * 60);
System.out.println("time diff mins = " + diffMins);
//两个日期相差的小时
long diffHours = timeDiffMillis / (1000 * 60 * 60);
System.out.println("time diff hours = " + diffHours);
//两个日期相差的天
long diffDays = timeDiffMillis / (1000 * 60 * 60 * 24);
System.out.println("time diff days = " + diffDays);
}
}
运行结果:
引用
flag = true
flag = false
time diff millis = 604800000
time diff secs = 604800
time diff mins = 10080
time diff hours = 168
time diff days = 7
使用Calendar 计算年龄:
代码
package org.lokvin.example.calendar;
import java.util.Calendar;
import java.util.GregorianCalendar;
/*
* 计算年龄
*/
public class CalendarExample4 {
public static void main(String[] args) {
//创建生日的 Calendar 对象
Calendar birthDate = new GregorianCalendar(1979, Calendar.JULY, 7);
Calendar today = Calendar.getInstance();
int age = today.get(Calendar.YEAR) - birthDate.get(Calendar.YEAR);
//如果还没有过生日,则 age - 1
birthDate.add(Calendar.YEAR, age);
if(today.before(birthDate)){
age--;
}
System.out.println("age = " + age);
}
}
判断是否为闰年:
代码
package org.lokvin.example.calendar;
import java.util.GregorianCalendar;
/*
* 判断是否为闰年 leap year
*/
public class CalendarExample5 {
public static void main(String[] args) {
//判断是否"闰年" leap year
GregorianCalendar cal = new GregorianCalendar();
boolean isLeapYear = cal.isLeapYear(1998);
System.out.println("is leap year 1998 = " + isLeapYear);
isLeapYear = cal.isLeapYear(2000);
System.out.println("is leap year 2000 = " + isLeapYear);
}
}
运行结果 :
引用
is leap year 1998 = false
is leap year 2000 = true
获得其他时区的时间:
代码
package org.lokvin.example.calendar;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.TimeZone;
/*
* 获得其他时区当前时间
*/
public class CalendarExample6 {
public static void main(String[] args) {
Calendar cal = new GregorianCalendar();
int hour12 = cal.get(Calendar.HOUR);
int hour24 = cal.get(Calendar.HOUR_OF_DAY);
System.out.println("hour12 in our timezone = " + hour12);
System.out.println("hour24 in our timezone = " + hour24);
//获得其他时区的当前时间,根据 zoneId 获得时区
Calendar calJap = new GregorianCalendar(TimeZone.getTimeZone("Japan"));
hour12 = calJap.get(Calendar.HOUR);
System.out.println("hour12 in japs timezone = " + hour12);
hour24 = calJap.get(Calendar.HOUR_OF_DAY);
System.out.println("hour24 in japs timezone = " + hour24);
//获得 zoneId 的列表
String[] zoneIds = TimeZone.getAvailableIDs();
for(int i=0; i<zoneIds.length; i++) {
String zoneId = zoneIds[i];
System.out.println("zone id = " + zoneId);
}
}
}
运行结果:
引用
hour12 in our timezone = 5
hour24 in our timezone = 17
hour12 in japs timezone = 6
hour24 in japs timezone = 18
zone id = Etc/GMT+12
zone id = Etc/GMT+11
zone id = MIT
zone id = Pacific/Apia
zone id = Pacific/Midway
...
格式化日期:
代码
package org.lokvin.example.calendar;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateForamExample {
public static void main(String[] args) {
Date rightNow = new Date();
DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
DateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");
DateFormat format3 = new SimpleDateFormat("h:mm a");
DateFormat format4 = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
DateFormat format5 = new SimpleDateFormat("EEE, MMM, dd, ''yyyy");
DateFormat format6 = new SimpleDateFormat("yyyy.MM.dd kk:mm 'o''clock' a, zzzz");
DateFormat format7 = new SimpleDateFormat("yyyyy.MMMMM.dd GGG hh:mm aaa");
System.out.println("format1 = " + format1.format(rightNow));
System.out.println("format2 = " + format2.format(rightNow));
System.out.println("format3 = " + format3.format(rightNow));
System.out.println("format4 = " + format4.format(rightNow));
System.out.println("format5 = " + format5.format(rightNow));
System.out.println("format6 = " + format6.format(rightNow));
System.out.println("format7 = " + format7.format(rightNow));
}
}
输出结果:
引用
format1 = 2006-12-05 06:12:02
format2 = 2006-12-05
format3 = 6:12 下午
format4 = 2006.12.05 公元 at 18:12:02 CST
format5 = 星期二, 十二月, 05, '2006
format6 = 2006.12.05 18:12 o'clock 下午, 中国标准时间
format7 = 02006.十二月.05 公元 06:12 下午
取当月的第一天:
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-01");
java.util.Date firstDay=new java.util.Date();
System.out.println("the month first day is "+formats.format(firstDay));
取当月的最后一天:
Calendar cal = Calendar.getInstance();
int maxDay=cals.getActualMaximum(Calendar.DAY_OF_MONTH);
java.text.Format formatter3=new java.text.SimpleDateFormat("yyyy-MM-"+maxDay);
System.out.println(formatter3.format(cal.getTime()));
java.util.Calendar,
java.util.GregorainCalendar,
java.text.DateFormat,
java.text.SimpleDateFormat
java.util.Date :
表示特定瞬间,精确到毫秒
一天是 24 * 60 * 60 = 86400 秒
世界时(UT 或 UTC) , 格林威治时间 (GMT), 格林威治时(GMT)和世界时(UT)
是相等的,格林威治时(GMT) 是标准的"民间"称呼, 世界时(UT) 是相同标准的
科学称呼。UTC 和 UT 的区别是:UTC 是基于原子时钟的,UT 是基于天体观察的。
(中文版的jdk 真是好啊,跟科普教材是的,呵呵)
常用的构造方法 :
Date();
Date(long date)
(long date) 表示从标准基准时间(称为 "历元" epoch ,即 1970.1.1
00:00:00 GMT)经历的毫秒数。
还有一些构造方法已经 deprecated 了
主要的方法:(介绍几个常用的,详细的查询 jdk 文档)
boolean after(Date when) 测试日期在此日期之后。
boolean before(Date when) 测试日期在此日期之前。
Object clone() 返回此对象的副本
long getTime() 返回自 1970.1.1 00:00:00 GMT 后,此对象表示的毫秒数
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)。
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),显示为两位十进制数。 60,61 是因为有"润秒"
zzz 是时区(并可以反映夏令时)。标准时区缩写包括方法 parse 识别的时区缩写。
如果不提供时区信息,则 zzz 为空,即根本不包括任何字符。
yyyy 是年份,显示为 4 位十进制数。
使用 System.currentTimeMillis() 获得当前系统时间的毫秒数
java.util.Calendar :
Calendar 类是一个抽象类.
Calendar rightNow = Calendar.getInstance();
可以使用三种方法更改日历字段:set()、add() 和 roll()。
set(f, value) 将日历字段 f 更改为 value。
此外,它设置了一个内部成员变量,以指示日历字段 f 已经被更改。尽管日历字段
f 是立即更改的,但是直到下次调用 get()、getTime()、getTimeInMillis()、
add() 或 roll() 时才会重新计算日历的时间值(以毫秒为单位)。因此,多次调
用 set() 不会触发多次不必要的计算。
add(f, delta) 将 delta 添加到 f 字段中。这等同于调用
set(f, get(f) + delta)
roll(f, delta) 将 delta 添加到 f 字段中,但不更改更大的字段。
java.util.GregorianCalendar:
GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家
使用的标准日历系统。
java.text.DateFormat:
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并
分析日期或时间。
java.text.SimpleDateFormat:
SimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。
它允许进行格式化(日期 -> 文本)、分析(文本 -> 日期)和规范化。
SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。但是,
仍然建议通过 DateFormat 中的 getTimeInstance、getDateInstance 或
getDateTimeInstance 来新的创建日期-时间格式化程序。每一个这样的类方法
都能够返回一个以默认格式模式初始化的日期/时间格式化程序。可以根据需要使用
applyPattern 方法来修改格式模式。
日期和时间格式由日期和时间模式 字符串指定。
在日期和时间模式字符串中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z'
被解释为模式字母,用来表示日期或时间字符串元素。
引用
字母 日期或时间元素 表示 示例
G Era 标志符 Text AD
y 年 Year 1996; 96
M 年中的月份 Month July; Jul; 07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text Tuesday; Tue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard Time; PST; GMT-08:00
Z 时区 RFC 822 time zone -0800
引用
日期和时间模式 结果
"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
获得当前系统的毫秒数:
代码
package org.lokvin.example.calendar;
public class CalendarExample1 {
public static void main(String[] args) {
java.util.Date date = new java.util.Date();
//获得当前系统的毫秒数,自 1970.1.1 00:00:00 GMT
long time = System.currentTimeMillis();
java.util.Date date1 = new java.util.Date(time);
System.out.println("date = " + date.toString());
System.out.println("millisecond = " + time);
System.out.println("date1 = " + date1.toString());
}
}
运行结果:
引用
date = Mon Dec 04 16:01:16 CST 2006
millisecond = 1165219276771
date1 = Mon Dec 04 16:01:16 CST 2006
代码
package org.lokvin.example.calendar;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class CalendarExample2 {
public static void main(String[] args) {
//获得当前日期
Calendar calendar = Calendar.getInstance();
int era = calendar.get(Calendar.ERA);// 0 = BC, 1 = AD
System.out.println("ERA = " + era);
int year = calendar.get(Calendar.YEAR); //2006
System.out.println("YEAR = " + year);
int month = calendar.get(Calendar.MONTH);
//获得当前月份, 0..11 表示 JAN..DEC
System.out.println("Month = " + month);//0 = JAN ... 11 = DEC
int day = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println("Day of Month = " + day); // 1
//获得日期在本周的天数, Sun=1, Mon=2 ... Sta=7
int day_of_week = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println("Day of Week = " + day_of_week);
//获得当前时间 12 时制是 Calendar.HOUR
int hour12 = calendar.get(Calendar.HOUR);
//获得 AM ,PM , 0 = AM, 1 = PM
int ampm = calendar.get(Calendar.AM_PM);
System.out.println("hour 12 = " + hour12);
System.out.println("am pm = " + ampm); //0 = am , 1 = pm
//获得当前时间 24 时制 Calendar.HOUR_OF_DAY
int hour24 = calendar.get(Calendar.HOUR_OF_DAY);
System.out.println("hour 24 = " + hour24);
Calendar today = new GregorianCalendar(2006, Calendar.DECEMBER, 4);
//Calendar.getInstance() 得到当前具体到毫秒的一个时间点
System.out.println("calendar = " + calendar.getTime().toString());
//通过 new GregorianCalendar(2006, Calendar.DECEMBER, 4)
//生成的 calendar 除了指定的年,月,日其余为0(时分秒=0)
System.out.println("today = " + today.getTime().toString());
}
}
运行结果:
引用
ERA = 1
YEAR = 2006
Month = 11
Day of Month = 4
Day of Week = 2
hour 12 = 4
am pm = 1
hour 24 = 16
calendar = Mon Dec 04 16:22:42 CST 2006
today = Mon Dec 04 00:00:00 CST 2006
两个日期之间的比较:
代码
package org.lokvin.example.calendar;
import java.util.Calendar;
import java.util.GregorianCalendar;
/*
* 比较两个 calendar 对象之间的先后
*/
public class CalendarExample3 {
public static void main(String[] args) {
//日期比较
Calendar xmas = new GregorianCalendar(2006, Calendar.DECEMBER, 25);
Calendar newYear = new GregorianCalendar(2007, Calendar.JANUARY, 1);
//比较两个日期先后
boolean flag = xmas.before(newYear);
System.out.println("flag = " + flag);
flag = xmas.after(newYear);
System.out.println("flag = " + flag);
//两个日期相差的毫秒数
long timeDiffMillis = newYear.getTimeInMillis() - xmas.getTimeInMillis();
System.out.println("time diff millis = " + timeDiffMillis);
//两个日期相差的秒数
long diffSecs = timeDiffMillis / 1000;
System.out.println("time diff secs = " + diffSecs);
//两个日期相差的分钟
long diffMins = timeDiffMillis / (1000 * 60);
System.out.println("time diff mins = " + diffMins);
//两个日期相差的小时
long diffHours = timeDiffMillis / (1000 * 60 * 60);
System.out.println("time diff hours = " + diffHours);
//两个日期相差的天
long diffDays = timeDiffMillis / (1000 * 60 * 60 * 24);
System.out.println("time diff days = " + diffDays);
}
}
运行结果:
引用
flag = true
flag = false
time diff millis = 604800000
time diff secs = 604800
time diff mins = 10080
time diff hours = 168
time diff days = 7
使用Calendar 计算年龄:
代码
package org.lokvin.example.calendar;
import java.util.Calendar;
import java.util.GregorianCalendar;
/*
* 计算年龄
*/
public class CalendarExample4 {
public static void main(String[] args) {
//创建生日的 Calendar 对象
Calendar birthDate = new GregorianCalendar(1979, Calendar.JULY, 7);
Calendar today = Calendar.getInstance();
int age = today.get(Calendar.YEAR) - birthDate.get(Calendar.YEAR);
//如果还没有过生日,则 age - 1
birthDate.add(Calendar.YEAR, age);
if(today.before(birthDate)){
age--;
}
System.out.println("age = " + age);
}
}
判断是否为闰年:
代码
package org.lokvin.example.calendar;
import java.util.GregorianCalendar;
/*
* 判断是否为闰年 leap year
*/
public class CalendarExample5 {
public static void main(String[] args) {
//判断是否"闰年" leap year
GregorianCalendar cal = new GregorianCalendar();
boolean isLeapYear = cal.isLeapYear(1998);
System.out.println("is leap year 1998 = " + isLeapYear);
isLeapYear = cal.isLeapYear(2000);
System.out.println("is leap year 2000 = " + isLeapYear);
}
}
运行结果 :
引用
is leap year 1998 = false
is leap year 2000 = true
获得其他时区的时间:
代码
package org.lokvin.example.calendar;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.TimeZone;
/*
* 获得其他时区当前时间
*/
public class CalendarExample6 {
public static void main(String[] args) {
Calendar cal = new GregorianCalendar();
int hour12 = cal.get(Calendar.HOUR);
int hour24 = cal.get(Calendar.HOUR_OF_DAY);
System.out.println("hour12 in our timezone = " + hour12);
System.out.println("hour24 in our timezone = " + hour24);
//获得其他时区的当前时间,根据 zoneId 获得时区
Calendar calJap = new GregorianCalendar(TimeZone.getTimeZone("Japan"));
hour12 = calJap.get(Calendar.HOUR);
System.out.println("hour12 in japs timezone = " + hour12);
hour24 = calJap.get(Calendar.HOUR_OF_DAY);
System.out.println("hour24 in japs timezone = " + hour24);
//获得 zoneId 的列表
String[] zoneIds = TimeZone.getAvailableIDs();
for(int i=0; i<zoneIds.length; i++) {
String zoneId = zoneIds[i];
System.out.println("zone id = " + zoneId);
}
}
}
运行结果:
引用
hour12 in our timezone = 5
hour24 in our timezone = 17
hour12 in japs timezone = 6
hour24 in japs timezone = 18
zone id = Etc/GMT+12
zone id = Etc/GMT+11
zone id = MIT
zone id = Pacific/Apia
zone id = Pacific/Midway
...
格式化日期:
代码
package org.lokvin.example.calendar;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateForamExample {
public static void main(String[] args) {
Date rightNow = new Date();
DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
DateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");
DateFormat format3 = new SimpleDateFormat("h:mm a");
DateFormat format4 = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
DateFormat format5 = new SimpleDateFormat("EEE, MMM, dd, ''yyyy");
DateFormat format6 = new SimpleDateFormat("yyyy.MM.dd kk:mm 'o''clock' a, zzzz");
DateFormat format7 = new SimpleDateFormat("yyyyy.MMMMM.dd GGG hh:mm aaa");
System.out.println("format1 = " + format1.format(rightNow));
System.out.println("format2 = " + format2.format(rightNow));
System.out.println("format3 = " + format3.format(rightNow));
System.out.println("format4 = " + format4.format(rightNow));
System.out.println("format5 = " + format5.format(rightNow));
System.out.println("format6 = " + format6.format(rightNow));
System.out.println("format7 = " + format7.format(rightNow));
}
}
输出结果:
引用
format1 = 2006-12-05 06:12:02
format2 = 2006-12-05
format3 = 6:12 下午
format4 = 2006.12.05 公元 at 18:12:02 CST
format5 = 星期二, 十二月, 05, '2006
format6 = 2006.12.05 18:12 o'clock 下午, 中国标准时间
format7 = 02006.十二月.05 公元 06:12 下午
取当月的第一天:
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-01");
java.util.Date firstDay=new java.util.Date();
System.out.println("the month first day is "+formats.format(firstDay));
取当月的最后一天:
Calendar cal = Calendar.getInstance();
int maxDay=cals.getActualMaximum(Calendar.DAY_OF_MONTH);
java.text.Format formatter3=new java.text.SimpleDateFormat("yyyy-MM-"+maxDay);
System.out.println(formatter3.format(cal.getTime()));
发表评论
-
润乾报表
2010-10-12 13:58 3073润乾报表润乾报表是一个纯JAVA的企业级报表工具, ... -
oracle连接问题ORA-00604,ORA-12705
2009-11-24 18:09 4615最近也想整整spring和hibernate,于是从网上找个例 ... -
Servlet的跳转方式
2009-06-11 17:31 1252在servlet中,一般跳转都 ... -
java 工程和类等路径汇总
2009-05-31 13:57 1320一 相对路径的获得 ... -
本类加载器的资源文件路径问题
2009-05-31 09:18 1093经常希望通过ClassName.class.getClassL ... -
用CruiseControl监视你的项目 -CruiseControl step by step(4
2009-04-14 10:31 993现在,我们已经为自己的项目建立了持续集成服务器。让我们来看一下 ... -
向CruiseControl中加入一个新项目 - CruiseControl step by ste
2009-04-14 10:30 1194好,现在我们已经在自己的机器上建立了一个持续集成服务器,并初步 ... -
了解CuiseControl的配置文件 - CruiseControl step by step(2
2009-04-14 10:29 1672上一篇文章中,我们已 ... -
搭建你的持续集成服务器 - CruiseControl step by step(1)
2009-04-14 10:28 1349CruiseControl是CI服务器的 ... -
tomcat三种部署方法
2009-03-12 14:31 969第一种方法:在tomcat中的conf目录中,在server. ... -
cxf webservice
2009-03-11 09:00 1573<web-app version="2.4&q ... -
IntelliJ IDEA常用技巧
2009-03-10 09:11 14811、写代码时用Alt-Insert ... -
list 和 vector 使用区别
2009-01-14 09:03 1994stl提供了三个最基本的容器:vector,list,dequ ... -
Windows下Lucence环境搭建菜鸟入门手册
2008-12-04 09:04 3347Windows下Lucence环境搭建菜鸟入门手册 归类于: ... -
软件开发十大模型
2008-10-31 10:52 1434一、 线性顺序过 ... -
struts+spring+hibernate整合体验报告
2008-10-27 15:08 1187通过3天的学习,发现struts+hibernate+spti ... -
junit4集成设计开发
2008-10-14 10:53 1341JUnit 4 初体验 在开始体验 JUnit 4 之前,我 ... -
持续集成
2008-10-14 10:33 1072今天终于把持续集成中build loop那一块弄出来了,采用a ... -
cruisecontrol实现持续集成
2008-09-18 17:23 847持续集成应用方案见附件,希望能给关系cruisecontrol ...
相关推荐
Java 日期格式转换 Java 中日期格式转换是一个常见的问题,在编程中,我们经常需要将字符串转换为日期对象,或者将日期对象转换为字符串。下面,我们将详细讨论 Java 中日期格式转换的知识点。 字符串转换为 java....
Java 日期格式转换是指在 Java 编程语言中将日期和时间从一种格式转换为另一种格式的过程。日期格式转换是 Java 编程中非常重要的一部分,因为日期和时间是许多应用程序中的关键元素。 在 Java 中,日期和时间通常...
### Java日期格式转换详解 在Java开发中,对日期和时间进行操作是非常常见的需求之一。本文将基于给定文件中的代码示例,详细介绍如何在Java中实现日期格式的转换,并探讨其中涉及的关键知识点。 #### 一、理解...
JSON转换为JAVA对象及日期格式转换处理 -
方法的主要功能是将输入的字符串形式的日期转换为`java.util.Date`类型,并允许指定日期格式。 ```java public synchronized static java.util.Date getStringToDate(String date, String type) throws Exception {...
Java时间格式转换是Java开发中常见且重要的操作之一,它涉及到日期和时间的解析、格式化以及转换。本文将深入探讨Java中与时间格式转换相关的知识点,包括如何使用`SimpleDateFormat`类进行时间的格式化和解析,以及...
为了将日期转换为人类可读的格式,我们需要使用`java.text.SimpleDateFormat`类,它可以按照我们定义的模式将日期格式化为字符串。 示例代码: ```java import java.util.Date; import java.text.SimpleDateFormat;...
java list<bean> date.class如果日期类型就改成这个 日期时间格式转换
Java时间格式转换是Java开发中常见的任务,涉及到日期和时间的处理。在Java中,主要通过`java.util.Date`、`java.util.Calendar`以及`java.text.SimpleDateFormat`等类来完成。下面将详细介绍这些类和方法在时间格式...
不同的业务场景可能会导致日期数据在录入时采用各种不同的格式,如`YYYYMMDD`, `YYYY-MM-DD`, `MM/DD/YYYY`等。为了便于查询、排序和分析,通常需要将这些不同格式的日期统一转换为一个标准的日期格式,例如`YYYY-MM...
Java视频格式转换主要依赖于第三方库,如FFmpeg。FFmpeg是一个开源的命令行工具,用于处理音频和视频...通过学习和实践,我们可以利用Java结合FFmpeg库,实现高效、灵活的视频处理功能,满足各种视频格式转换的需求。
### Java日期时间转换大全 在Java编程中,处理日期和时间是常见的需求,尤其是在涉及到数据库操作、文件命名、日志记录等场景时。本文将详细解析如何在Java中进行日期和时间的转换,涵盖从字符串到日期对象的转换,...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于前后端交互,而Java作为后端开发的主要语言,常常需要将JSON格式的数据与Java类对象进行相互转换,以便于数据的处理和传输。Jackson库是...
### Java时间格式转换详解 在Java开发过程中,对日期时间的处理是非常常见的需求之一。合理的日期时间格式化不仅能提升程序的可读性,还能更好地满足业务逻辑的需求。本文将详细介绍如何在Java中进行时间格式的转换...
总结,Java的时间格式转换符是处理日期和时间的关键工具,它们使得日期对象和字符串之间的转换变得简单。`SimpleDateFormat`虽然经典,但`java.time`包的出现提供了更好的选择,尤其是在处理日期和时间时的线程安全...
时间格式转换类DateUtil.java
Java视频格式转换是一种常见的技术需求,特别是在开发网页流媒体服务时,为了使视频能在不同的浏览器或设备上流畅播放,往往需要将多种视频格式转化为统一的标准,例如FLV(Flash Video)。FLV是Adobe Flash Player...
总之,`Calendar`类是Java中处理日期和时间的强大工具,通过结合`SimpleDateFormat`,我们可以实现各种日期格式的转换,满足不同场景的需求。理解`Calendar`及其相关类的使用,对于任何Java开发者来说都是必不可少的...
- `%t`: 用于时间日期格式化,如`%tc`输出完整日期和时间,`%tm`输出月份。 ### 4. 转换符修饰符 - `-`: 左对齐,例如`%-10s`会在10个字符宽度内左对齐输出字符串。 - `+`: 在数字前面加上正负号,即使数值是正数...
### Java.util.Date与Java.sql.Date互转及字符串转换为日期时间格式 #### 一、Java.util.Date与Java.sql.Date的基本概念 在Java编程语言中,处理日期和时间时经常使用到`java.util.Date`和`java.sql.Date`这两个类...