注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

网易杭州 QA Team

务实 专注 分享 做有态度的QA

 
 
 
 
 

日志

 
 

java时间相关整理  

来自jjstrive   2012-08-19 22:31:32|  分类: 语言类 |举报 |字号 订阅

  下载LOFTER 我的照片书  |

之前写的java代码,唯一涉及到系统时间的就是System.currentTimeMillis()了,前几天碰到一个时间输出格式的问题,完全没概念,这里对着jdk文档学习整理一下。


java.util.Calendar

Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEARMONTHDAY_OF_MONTHHOUR 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。Calendar 提供了一个类方法 getInstance,日历字段已由当前日期和时间初始化。

Calendar rightNow = Calendar.getInstance();   

Calendarset(f, value)add(f, delta)方法可自由设置YEARMONTHDAY_OF_MONTHHOUR MINUTESECOND等日历字段,如:

rightNow .add(Calendar.DAY_OF_MONTH, -5);

Calendar处于non-lenient模式时,set操作可能将报错。

rightNow.set(Calendar.MONTH, 15);//okCalendar.MONTH合理区间为[0,11],设置后的月份为15%12=3,即4月份。

       rightNow.setLenient(false);//设置Calendar解释日历字段的模式non-lenient,默认为lenient

rightNow.set(Calendar.MONTH, 100);//error, MONTH beyond limit

 

java.util.Date

Date类现在基本已经过时,从 JDK 1.1 开始,Date类的方法在Calendar中都能找到替代。Date类还包含3个瘦包装器(thin wrapper)子类Date, Time, Timestamp,支持将毫秒值、日期值、时间戳转换为SQL支持的格式。

         Calendar getTime()方法可实现Calendar对象到Date的转换。

 

 java.text.SimpleDateFormat

SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类,相比它的父类DateFormat SimpleDateFormat可以完全自定义的日期-时间格式的模式,这点用起来非常方便。 SimpleDateFormat定义了G、y、M、D等模式字母,可以用他们定义表示时间模式 的字符串,如:"EEE, MMM d, ''yy"将表示Wed, Jul 4, '01 格式的时间。



综上,如果需要修改某个Calendar 对象,并自定义格式输出,可简单的使用上述几个类:

Calendar cal = Calendar.getInstance();

cal.add(Calendar.HOUR, 4);

       

SimpleDateFormat sdf = new SimpleDateFormat("EEE,HH:mm", Locale.US);

String timeStr = sdf.format(cal.getTime());

System.out.println(timeStr);

  评论这张
 
阅读(413)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016