JAVA中的Calendar
来源:互联网 发布:淘宝客和直通车哪个好 编辑:程序博客网 时间:2024/05/21 11:36
有一段时间没写东西,本着不断总结不断进步的理念,在这里整下里JAVA中的Calendar类。其实我一直觉得设计Calendar类的家伙脑残,我们需要的很简单,却被里面的一堆field弄懵了。多的不说,分几个部分总结。
1.时区(TimeZone)和地区(Locale)
时区:这个名称有点不准确,其实应该叫“时间体系和偏移量”。
时间体系有很多种,古时中国人喜欢用皇帝名+登基时间来表示时间,这也是一种时间体系。现在比较常用的时间体系是GMT和UTC。GMT也就是格林威治时间,也叫格林尼治时间,从1970-01-01 00:00:00开始计算。UTC是在GMT基础上设计的,两者误差很小,作为凡人可以忽略。如果是要求很高的军工行业,则请查阅其他资料吧。
偏移量主要是针对GMT和UTC体系把世界划分为24个区而设计的。常见的东八区“GMT+8”。
地区:所属地区。在中国一个星期的第一天是星期一,在西方第一天是星期日,这个小细节不注意可能会导致计算星期的时候出问题。
// 全局显示定义最省事安全Locale.setDefault(Locale.ENGLISH);//推荐用英语地区的算法TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));// 局部定义Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+8"), Locale.ENGLISH);2.初始值
代码如下,值得指出的是由于我们的时区设置是GMT+8,所以打印格林威治时间得到的是1970-01-01 08:00:00。
Calendar cal = Calendar.getInstance();//得到当前时间cal.setTimeInMillis(0);//转换成格林威治时间
3.获取值
cal.get(Calendar.YEAR);//年cal.get(Calendar.MONTH) + 1;//月(脑残要+1)cal.get(Calendar.DATE);//日cal.get(Calendar.HOUR_OF_DAY);//时cal.get(Calendar.MINUTE);//分cal.get(Calendar.SECOND);//秒cal.get(Calendar.DAY_OF_WEEK);//星期(Locale.ENGLISH情况下,周日是1,剩下自己推算)如果拿时间不是为了计算而是展示出来,肯定用SimpleDateFormart了,模式为yyyy-MM-dd HH:mm:ss
4.设置值
cal.set(2013, 5, 4, 13, 44, 51);//年月日时分秒(月份0代表1月)cal.set(Calendar.YEAR, 2014);//年cal.set(Calendar.MONTH, 7);//月(月份0代表1月)cal.set(Calendar.DATE, 11);//日cal.set(Calendar.HOUR_OF_DAY, 15);//时cal.set(Calendar.MINUTE, 33);//分cal.set(Calendar.SECOND, 32);//秒//周比较含糊免了
5.运算值
cal.add(Calendar.YEAR, 1);//年cal.add(Calendar.MONTH, 1);//月cal.add(Calendar.DATE, 1);//日cal.add(Calendar.HOUR_OF_DAY, -1);//时cal.add(Calendar.MINUTE, 1);//分cal.add(Calendar.SECOND, 1);//秒cal.add(Calendar.DATE, 7);//周
1 0
- java中的Calendar类
- JAVA中的Calendar
- Java中的Calendar方法
- java中的calendar类
- java语言中的Calendar
- JAVA中的Calendar
- JAVA中的Calendar类
- java中的calendar操作函数
- java中的Date,Calendar,String
- java中的Calendar属性详解
- 使用Java中的Date和Calendar类
- 使用Java中的Date和Calendar类
- 使用Java中的Date和Calendar类
- Java中的Date和Calendar类
- 使用Java中的Date和Calendar类
- 使用Java中的Date和Calendar类
- 使用Java中的Date和Calendar类
- 关于Java中的Date和Calendar类
- Spring3:如何在Spring3中配置并使用FreeMarker?
- curl默认超时(timeout)时间
- 速度之王 — LZ4压缩算法(二)
- C++/CLI资料汇总
- 使用WebClient实现文件下载
- JAVA中的Calendar
- 织梦自定义模型采集
- javascript深入理解js闭包
- 20131212孤独者之旅08
- SQL触发器使用样例
- Vertica6.1.x对超长字符串的处理
- POJ 2718 Smallest Difference (dfs)
- leetcode Trapping Rain Water
- 线程-保护块示例程序