- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一种方法来计算给定格式(“yyyy-MM-dd”)的制造日期以及产品可以在 int 中使用之前的月份的到期日期。首先,我尝试使用 getYear getMonth getDate of Month 类,如下所示我没有得到错误结果:
public void calculateExpiryDate(List<Item> items)
{
Iterator<Item> itr=items.iterator();
while(itr.hasNext())
{
Item i=itr.next();
Date md=i.getManufacturingDate();
int ubm=i.getUseBeforeMonths();
Calendar c=new GregorianCalendar(md.getYear(),md.getMonth(),md.getDate());
//System.out.println(c);
c.add(Calendar.MONTH, ubm);
Date exp=c.getTime();
i.setExpiryDate(exp);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy MM dd");
System.out.println(md+" "+ubm+" "+sdf.format(exp)+" "+" "+i.getId());
}
}
但是当我退出使用它并使用 setTime 时,它解决了我的问题。我想知道我之前犯了什么错误以及为什么那天事情不起作用以及是否有任何错误(因为我没有得到任何编译时间)错误)它实际上是什么。以下是给出正确结果的相同代码的版本。
public void calculateExpiryDate(List<Item> items)
{
Iterator<Item> itr=items.iterator();
while(itr.hasNext())
{
Item i=itr.next();
Date md=i.getManufacturingDate();
int ubm=i.getUseBeforeMonths();
Calendar c=new GregorianCalendar();
c.setTime(md);
//System.out.println(c);
c.add(Calendar.MONTH, ubm);
Date exp=c.getTime();
i.setExpiryDate(exp);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy MM dd");
System.out.println(md+" "+ubm+" "+sdf.format(exp)+" "+" "+i.getId());
}
}
最佳答案
你的问题是 GregorianCalendar
的构造函数期望年份为绝对值,但 getYear()
返回 1900 的偏移量。
查看 Java 文档可以发现(除了使用的 Date 方法均已弃用):
Date.getYear():
returns a value that is the result of subtracting 1900 from the year that contains or begins with the instant in time represented by this Date object, as interpreted in the local time zone.
公历日历:
年构造函数参数the value used to set the YEAR calendar field in the calendar
而setTime(Date)
使用 md.getTime()
返回的值这是 number of milliseconds since January 1, 1970, 00:00:00 GMT
.
关于java - getMonth getYear getDate 给出错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32886160/
我有一些测试在我的代码上测试 getMonth 方法。 为了一切顺利,我将日期设置为 UTC 0,例如,如果我输入 Date.UTC(new Date (2021, 0, 1))我有一个字符串 202
我有一个带有 production_date 的对象我试图提取年份和月份,但我不断得到 getMonth()和 getYear()不是函数错误... function(d) { v
我有一个包含这样的时刻的模型: 我想要的是从中获取月份。我想要的不是一系列的时刻,而是一系列的月份。 我尝试使用 model.xAxisDates.getMonth() 像图片中那样执行此操作,但它返
我有一个函数,我想用它在一个月后对博客文章进行排序。 function sortBlogPostsAfterMonth(blogData) { console.log(blogData[0].cr
我有一个代码,我在其中测试两个日期之间的月数差异。为了得到旧的约会,我正在做以下事情 var oldDate = new Date(); oldDate.setMonth(oldDate.ge
这个问题已经有答案了: unexpected javascript date behavior (3 个回答) 已关闭 7 年前。 我在今天的日期中添加天数并获取以毫秒为单位的时间戳。 for(i
我正在从数据库中检索日期列表,并从这些日期中获取月份。当我获取该日期的月份时,它会返回一月份的 0。 var date = new Date('2015-12-31T22:57:12.000Z').g
本文整理了Java中cesiumlanguagewriter.YearMonthDay.getMonth()方法的一些代码示例,展示了YearMonthDay.getMonth()的具体用法。这些代码
我正在尝试使用此函数来验证用户是否有 18 年或更长时间,但在使用 getMonth() 时出现不稳定的行为。即如果我输入 1,ir 返回 0,但是如果我输入 2,它返回 2: function va
我已经粘贴了代码。我试图通过 getMonth 方法显示当前月份。我知道它显示一个月(0=一月到 11=十二月)。这就是为什么它在我的案例中显示了九月。我尝试添加 1 (.getMonth()+1)
早上好。 我有一个 jQuery Datepicker 对象,它是使用 javscript Date 对象预填充的,我有 getMonth() 返回 50 作为月份,而不是 5。这在 2012 年 4
我在使用 JavaScript date.getMonth() 和 date.getUTCMonth() 时发现了不一致的结果,但仅限于某些日期。以下示例演示了该问题: Click the bu
这个问题已经有答案了: unexpected javascript date behavior (3 个回答) 已关闭 8 年前。 我知道还有其他关于此的帖子,但我无法弄清楚我在这里做错了什么。下面是
我正在开展一个项目,该项目利用 ICU 的库来处理各种语言的日期信息。我在函数中使用以下代码: UErrorCode uec; Locale locale(language); // e.g with
我正在尝试构建一个 javascript 函数,该函数将自动填充日历中 14 天的日期,直到最后一个日期,该日期由日期选择器选择。到目前为止我的代码是: function filldates() {
本文整理了Java中java.time.ZonedDateTime.getMonth()方法的一些代码示例,展示了ZonedDateTime.getMonth()的具体用法。这些代码示例主要来源于Gi
本文整理了Java中java.time.YearMonth.getMonth()方法的一些代码示例,展示了YearMonth.getMonth()的具体用法。这些代码示例主要来源于Github/Sta
我有一个名为 $F{Fecha} 的时间戳文本字段,我想从中获取日期、月份和年份。我创建了 3 个变量 var1,var2,var3 并且在它们的表达式中我已经把以下 $F{Fecha}.getDay
jquery datepicker 非常有趣,但我遇到了一个奇怪的错误。我试图禁用一些日子,即。 2009 年 10 月 28 日,但 11 月 28 日在日历上被禁用!知道我在这里做错了什么吗? d
我有一种方法来计算给定格式(“yyyy-MM-dd”)的制造日期以及产品可以在 int 中使用之前的月份的到期日期。首先,我尝试使用 getYear getMonth getDate of Month
我是一名优秀的程序员,十分优秀!