热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JavaCalendar.set没有给出正确的结果-JavaCalendar.setnotgivingcorrectresult

IcantseewhereImgoingwrongwiththecodebelow,itsprobablysomethingobviousbutImtoobl

I can't see where I'm going wrong with the code below, its probably something obvious but I'm too blind to see it at this stage. I'm passing a date of "01/01/2009" to an instance of calendar. I then try and set the month to 2 for March and the output I see is

我无法看到下面的代码我出错了,它可能是显而易见的但我现在太盲目了。我将“01/01/2009”的日期传递给日历实例。然后我尝试将月份设置为3月份,我看到的输出是

formatted: 01/01/2009

cal month: 2

cal月:2

cal.set( Calendar.MONTH, mth ); //mth = int 2

log.debug("formatted: " + formatter.format(cal.getTime()));
log.debug("cal month: "+Integer.valueOf(cal.get(Calendar.MONTH)).toString());

When I set the Calendar.DAY to the max value the date comes out as 31/01/2009

当我将Calendar.DAY设置为最大值时,日期为31/01/2009

Why does my setting of the Month not take?

为什么我的月份设置没有采取?

3 个解决方案

#1


I'll look into exactly what's going on, but the general rule of thumb is: don't use java.util.{Date,Calendar}. Use Joda Time instead... it's so much cleaner...

我会仔细研究发生了什么,但一般的经验法则是:不要使用java.util。{Date,Calendar}。使用Joda Time代替......它更清洁......

EDIT: I can't reproduce your issue at the moment. I'd still recommend using Joda, but if you could post a short but complete program to demonstrate the problem, we may be able to work out what's going wrong.

编辑:我目前无法重现您的问题。我仍然建议使用Joda,但如果您可以发布一个简短但完整的程序来演示问题,我们可能会弄清楚出了什么问题。

EDIT: Based on another comment, I wonder whether your formatter is wrong... are you really using "dd/mm/yyyy" rather than "dd/MM/yyyy"? "mm" means minutes, not months.

编辑:基于另一个评论,我想知道你的格式化程序是否错误...你真的使用“dd / mm / yyyy”而不是“dd / MM / yyyy”吗? “mm”表示分钟,而不是月份。

#2


We ran into this and the result was that the value you set doesn't get used until you actually try to 'get' the value from Calendar. We were puzzled because using the debugger the value never seemed to get set, but when you actually 'get' it, it works.

我们碰到了这个结果,结果是你设置的值在你真正尝试从日历中“获取”值之前不会被使用。我们感到困惑,因为使用调试器的值似乎永远不会被设置,但是当你真正“得到”它时,它就可以工作了。

http://download.oracle.com/javase/1.5.0/docs/api/java/util/Calendar.html

Getting and Setting Calendar Field Values

获取和设置日历字段值

The calendar field values can be set by calling the set methods. Any field values set in a Calendar will not be interpreted until it needs to calculate its time value (milliseconds from the Epoch) or values of the calendar fields. Calling the get, getTimeInMillis, getTime, add and roll involves such calculation.

可以通过调用set方法来设置日历字段值。在需要计算其时间值(距Epoch的毫秒数)或日历字段的值之前,不会解释日历中设置的任何字段值。调用get,getTimeInMillis,getTime,add和roll涉及这样的计算。

#3


Perhaps you wanted to use Calendar.DAY_OF_MONTH

也许你想使用Calendar.DAY_OF_MONTH


推荐阅读
  • Asynchronous JavaScript and XML (AJAX) 的流行很大程度上得益于 Google 在其产品如 Google Suggest 和 Google Maps 中的应用。本文将深入探讨 AJAX 在 .NET 环境下的工作原理及其实现方法。 ... [详细]
  • 笔记说明重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系& ... [详细]
  • 如何使用Maven将依赖插件一并打包进JAR文件
    本文详细介绍了在使用Maven构建项目时,如何将所需的依赖插件一同打包进最终的JAR文件中,以避免手动部署依赖库的麻烦。 ... [详细]
  • Hadoop MapReduce 实战案例:手机流量使用统计分析
    本文通过一个具体的Hadoop MapReduce案例,详细介绍了如何利用MapReduce框架来统计和分析手机用户的流量使用情况,包括上行和下行流量的计算以及总流量的汇总。 ... [详细]
  • 本文详细介绍如何在SSM(Spring + Spring MVC + MyBatis)框架中实现分页功能。包括分页的基本概念、数据准备、前端分页栏的设计与实现、后端分页逻辑的编写以及最终的测试步骤。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • 一、Advice执行顺序二、Advice在同一个Aspect中三、Advice在不同的Aspect中一、Advice执行顺序如果多个Advice和同一个JointPoint连接& ... [详细]
  • Android 开发技巧:使用 AsyncTask 实现后台任务与 UI 交互
    本文详细介绍了如何在 Android 应用中利用 AsyncTask 来执行后台任务,并及时将任务进展反馈给用户界面,提高用户体验。 ... [详细]
  • egg实现登录鉴权(七):权限管理
    权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • 【MySQL】frm文件解析
    官网说明:http:dev.mysql.comdocinternalsenfrm-file-format.htmlfrm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果 ... [详细]
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • Android 中的布局方式之线性布局
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 本文详细介绍了 `org.apache.tinkerpop.gremlin.structure.VertexProperty` 类中的 `key()` 方法,并提供了多个实际应用的代码示例。通过这些示例,读者可以更好地理解该方法在图数据库操作中的具体用途。 ... [详细]
author-avatar
手机用户2602897411
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有