社区
Java SE
帖子详情
求教,Java里的Calendar类问题
Fzergling
2012-07-22 01:43:02
请问Calendar获取时间最终是调用的系统API还是由java自己实现的功能?请高人指教
...全文
133
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
中
Calendar
类
的常用方法
本文详细介绍了
Java
中
Calendar
类
的使用方法,包括如何获取当前日期和时间、如何设置特定的日期和时间以及如何进行时间计算。通过示例展示了
Calendar
的基本操作。
Java
之Date
类
和
Calendar
类
的区别
博客介绍了
Java
中Date
类
和
Calendar
类
。Date
类
从JDK1.0就存在,大部分构造器和方法已过时,它表示特定瞬间,精确到毫秒。
Calendar
类
是抽象
类
,用于日期相关计算。还介绍了二者主要区别、常用构造器和方法,如Date的after、before等方法,
Calendar
的getInstance方法。
Calendar
类
介绍
本文介绍了
Java
中
Calendar
类
的使用方法,包括如何获取当前日期、设置日期、增减日期以及将
Calendar
对象转换为 Date 对象等。同时,还详细解释了
Calendar
类
中各个常用方法的参数含义及使用技巧。
浅谈
JAVA
中
Calendar
类
FirstDayOfWeek的
问题
本文深入解析
Java
中
Calendar
类
的getFirstDayOfWeek与getMinimalDaysInFirstWeek方法,通过实例演示如何设定一周的第一天及控制一周的天数,帮助读者理解日期处理的细节。
【
Java
基础】全方面带你了解
Java
里
的日期与时间内容,介绍
Calendar
、Gregorian
Calendar
、Date
类
本文聚焦
Java
日期时间处理。介绍了Date
类
构造函数,阐述三种日期比较方法,讲解SimpleDateFormat格式化日期及解析字符串为时间。还介绍了功能强大的
Calendar
类
,包括对象信息设置,以及
Calendar
类
具体实现Gregorian
Calendar
类
。
Java SE
62,621
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章