社区
Java SE
帖子详情
求教,Java里的Calendar类问题
Fzergling
2012-07-22 01:43:02
请问Calendar获取时间最终是调用的系统API还是由java自己实现的功能?请高人指教
...全文
135
5
打赏
收藏
求教,Java里的Calendar类问题
请问Calendar获取时间最终是调用的系统API还是由java自己实现的功能?请高人指教
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
skyWalker_ONLY
2012-07-22
打赏
举报
回复
获取的是你系统的时间。也就是jvm所在主机的时间。更深入的些就是默认情况下,取你所在时区的时间到1970年1月1日的毫秒数。这样的话即使换时区,但是偏差不变,所显示出来的时间也是正确的
brightyq
2012-07-22
打赏
举报
回复
看怎么看了,java api的很多类还是需要操作系统api的。Calendar也需要。
具体实现逻辑可参考源码。
MiceRice
2012-07-22
打赏
举报
回复
楼主这种问题,最重要的是需要掌握分析问题的方法。
那么这种问题,其实直接看看源码就知道了:
首先:Calendar 本身是 abstract 的,也即是抽象类,是无法实例化的。
那么研究下它的getInstance()函数吧:
public static Calendar getInstance(){
Calendar cal = createCalendar(TimeZone.getDefaultRef(), Locale.getDefault());
cal.sharedZone = true;
return cal;
}
继续跟踪createCalendar()函数:
private static Calendar createCalendar(TimeZone zone,
Locale aLocale)
{
// If the specified locale is a Thai locale, returns a BuddhistCalendar
// instance.
if ("th".equals(aLocale.getLanguage())
&& ("TH".equals(aLocale.getCountry()))) {
return new sun.util.BuddhistCalendar(zone, aLocale);
} else if ("JP".equals(aLocale.getVariant())
&& "JP".equals(aLocale.getCountry())
&& "ja".equals(aLocale.getLanguage())) {
return new JapaneseImperialCalendar(zone, aLocale);
}
// else create the default calendar
return new GregorianCalendar(zone, aLocale);
}
所以最终就是:GregorianCalendar,再看看其构造函数:
public GregorianCalendar(TimeZone zone, Locale aLocale) {
super(zone, aLocale);
gdate = (BaseCalendar.Date) gcal.newCalendarDate(zone);
setTimeInMillis(System.currentTimeMillis());
}
所以很清楚了,最终其实就是靠 System.currentTimeMillis(),来计算当前时间的,就是系统时间了。
XC2010_K
2012-07-22
打赏
举报
回复
Calendar的getTime()方法是获取你当前操作系统的时间。
你可以这样试试。
Calendar cal=new GregorianCalendar();
System.out.println(cal.getTime());
把这两句。分别在当前时间和改完系统日期之后执行。看输入的时间就可以了。
谷雨hadoop
2012-07-22
打赏
举报
回复
应该是系统的,java只是做了封装而已
Java
之Date
类
和
Calendar
类
的区别
Date
类
:对于处理日期、时间,
Java
提供了Date
类
,此处的Date是指
java
.util包下的Date
类
;Date对象既包含日期,也包含时间。Date
类
从JDK1.0起就已经存在,经过不停的迭代更新,导致它的大部分构造器、方法都已经过时淘汰,不再推荐使用;Date表示特定的瞬间,精确到毫秒。它允许把日期解释为年、月、日、小时、分钟和秒值;它也允许格式化和解析日期字符串;
Calendar
类
:...
浅谈
JAVA
中
Calendar
类
FirstDayOfWeek的
问题
Calendar
类
的getFirstDayOfWeek getFirstDayOfWeek() 获取一星期的第一天;例如,在美国,这一天是 SUNDAY,而在法国,这一天是 MONDAY getMinimalDaysInFirstWeek getMinimalDay...
Calendar
类
[
java
]
Calendar
类
概述、Calender
类
的实例化、常用成员方法、日历字段、
Calendar
类
的缺点
Java
中使用
Calendar
类
来解决日期的算法题
使用
Java
中的
Calendar
类
有时候遇到日期
类
的算法题就会变得特别简单 第一步:需要获得日历的对象,静态调用
Calendar
中的getInstance()方法获得的是默认的默认时区和默认的语言环境。
Calendar
c =
Calendar
.getInstance();第二步:通过
Calendar
对象调用set()方法给日历设置一个给定的值,set()方法有很多参数 一、set()方法
calendar
java
_
java
中
Calendar
类
的使用讲解
Calendar
类
是我们在工作中经常用到时间相关的一个工具
类
;比如月初、月末、年初、年末、指定月份所在季度的季末等操作,对它有更深入的了解,在工作中会起到事半功倍的效果,下面就来了解一下吧!!!**一.
Calendar
类
概述
Calendar
是日历
类
,该
类
将所有可能用到的时间信息封装为静态成员变量,方便获取。常用方法如下如下://根据日历的规则,为给定的日历字段添加或减去指定的时间量。abstrac...
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章