1.Date
1.1 生成Date对象
Date date = new Date() 当new出的Date对象不含参数时,date即为当前系统时间(年月日,时分秒均包含)
Date date = new Date(System.currentTimeMillis()); 带参数时,直接以参数作为时间1.2 输出Date对象
Thu Aug 29 14:38:58 CST 2013
2.SimpleDateFormat
2.1 特定字符串类型的日期转化为Date
SimpleDateFormat sdf = new SimpleDateFormat("yy:MM:dd");
String time = "13:07:25";
Date date = sdf.parse(time);
2.2 Date对象转化为特定字符串类型,改进输出
SimpleDateFormat sdf = new SimpleDateFormat("yy:MM:dd");
Date date = new Date();
String strDate = sdf.format(date);
则输出strDate 就为14:07:18
注:事件格式
G 年代标志符
y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / 下午 标记符
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区
3.Calendar
推荐使用Calendar
3.1 获得Calendar实例(Calendar为抽象类)
使用Calendar静态方法 :Calendar calendar = Calendar.getInstance();
生成Calendar的实现类 :Calendar calendar = new GregorianCalendar()
3.2 对Calendar各个时间字段赋值
3.2.1 使用Date实例赋值
这样Calendar中的所有字段均被设置为Date中的各个值
calendar.setTime(date);
3.2.2 单独设置各个字段
calendar.set(1990, 8, 29, 23, 8, 19);<p></p>
3.3 获得时间的各个字段值
dateCalendar.get(Calendar.YEAR)
dateCalendar.get(Calendar.MONTH)
dateCalendar.get(Calendar.DATE)
timeCalendar.get(Calendar.HOUR_OF_DAY)
timeCalendar.get(Calendar.MINUTE)
timeCalendar.get(Calendar.SECOND)说明:HOUR_OF_DAY指的是24小时制的小时,HOUR获得的是12小时制的时间
3.4 例子
1)获得n天前或后的当日的开始时间
long getTimeWithNaturalDaysLong(int n, long calcTime) {
GregorianCalendar cal = new GregorianCalendar();
cal.setTimeInMillis(calcTime);
cal.add(Calendar.DATE, n);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTimeInMillis();
} 2)获得本月第一天long getNaturalMonthBeginTime (long calcTime){
GregorianCalendar cal = new GregorianCalendar();
cal.setTimeInMillis(calcTime);
cal.set(Calendar.DATE, 1);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTimeInMillis();
} 3) 获得上个月最后一天long getNaturalMonthEndTime (long calcTime){
GregorianCalendar cal = new GregorianCalendar();
cal.setTimeInMillis(calcTime);
cal.set(Calendar.DATE, 1);
cal.add(Calendar.DATE, -1);
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.MILLISECOND, 999);
return cal.getTimeInMillis();
} 实质上就是先将日期设置为1号,再减去一天就是上个月最后一天
544

被折叠的 条评论
为什么被折叠?



