首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.util.Calendar中的完全()方法

java.util.Calendar中的完全()方法
EN

Stack Overflow用户
提问于 2012-05-18 11:15:09
回答 2查看 637关注 0票数 4

Calendar类中的complete()方法执行以下操作:

代码语言:javascript
复制
protected void complete()

填充日历字段中的任何未设置字段。首先,如果没有从日历字段值计算时间值(来自Epoch的毫秒偏移),则调用computeTime()方法。然后,调用computeFields()方法来计算所有日历字段值。

complete()方法有以下代码:

代码语言:javascript
复制
protected void complete()
    {
        if (!isTimeSet)
        updateTime();
        if (!areFieldsSet || !areAllFieldsSet) {
            computeFields(); // fills in unset fields
            areAllFieldsSet = areFieldsSet = true;
        }
    }

我的问题是,这个循环工作的意义是什么?的第一个值

代码语言:javascript
复制
protected int[] fields

的值。

代码语言:javascript
复制
long time 

使用computeTime()方法。然后使用time值在fields中使用computeFields()更新值。timefields中的值将在调用computeTime()本身之后保持同步,对吗?还是我漏掉了什么??

对于那些可能会问为什么它如此重要的人来说,这是因为在日历中重新计算时间的顺序经常改变我们从getTime()获得的时间(或者我已经读过了)!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-18 11:39:33

不是圆形的。

假设您有一个Calendar对象,其中设置了一些字段,但不是全部字段。该方法将(a)从所设置的字段中计算和保存历元(long time),然后(b)将所有未设置的字段设置为与它刚刚计算的历元一致。

因此,当该方法完成时,您将得到一个Calendar,其中所有字段都已填入并保持一致。这是一个不同的,更好的状态的对象,从哪里开始。

票数 1
EN

Stack Overflow用户

发布于 2012-05-18 11:48:38

量子是非常正确的。只是为了增加一些,你不能直接从可用的字段中计算缺失字段的值,你必须经过计算时间值的过程,然后从该值中填充缺失的字段。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10651595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档