Java 如何输入日期减去天数?
在认为这是一个副本之前,请阅读 我一直在阅读这里和其他地方的帖子,但我不明白为什么这个日期一开始是无效的 我使用SoapUI Pro进行调用,并在XML中放置了一些代码引用,以便创建过去的日期,但我需要它们与今天相关,而不是将来或遥远的过去,因此我使用了以下内容Java 如何输入日期减去天数?,java,date,datetime,calendar,soapui,Java,Date,Datetime,Calendar,Soapui,在认为这是一个副本之前,请阅读 我一直在阅读这里和其他地方的帖子,但我不明白为什么这个日期一开始是无效的 我使用SoapUI Pro进行调用,并在XML中放置了一些代码引用,以便创建过去的日期,但我需要它们与今天相关,而不是将来或遥远的过去,因此我使用了以下内容 ${=import java.text.SimpleDateFormat; new SimpleDateFormat("YYYY-MM-DD").format(new Date()-6);} 当我向Web服务提交调用时,我返回了此错误
${=import java.text.SimpleDateFormat;
new SimpleDateFormat("YYYY-MM-DD").format(new Date()-6);}
当我向Web服务提交调用时,我返回了此错误
“2016-02-32”不是“日期”的有效值
有人能解释一下为什么会发生这种情况吗?
我需要什么来纠正这个问题
最终我需要能够做两件事
我看到一些人正在使用日历和对Java 8的新引用,今天早上这只是一个时间紧迫的问题,我不想去任何兔子洞去跟踪可能是一个问题的事情,因为服务器在这个时候没有使用Java 8。尝试类似的方法
${=import java.text.SimpleDateFormat; Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, -6); new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());}
您也可以将其用于日期和时间,只需替换格式字符串即可
格式化日期的corect模式是yyyy-MM-dd
(参见javadoc)
- y-指本年度
- Y-表示一年中的第一周和最后一周()
- 月份中的d日
- 一年中的D日
基于的答案试试这样
${=import java.text.SimpleDateFormat; Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, -6); new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());}
您也可以将其用于日期和时间,只需替换格式字符串即可
格式化日期的corect模式是yyyy-MM-dd
(参见javadoc)
- y-指本年度
- Y-表示一年中的第一周和最后一周()
- 月份中的d日
- 一年中的D日
这在SoapUI v5.3.0中适用:
${=new java.text.SimpleDateFormat(“yyyy-MM-dd”).format(new Date()-6)}
这在SoapUI v5.3.0中适用:
${=new java.text.simpleDataFormat(“yyyy-MM-dd”).format(new Date()-6)}
${=def now=new Date();now.format(“yyyy-MM-dd”)}
如果您需要它是昨天或未来的日期,就像+x to date()
例子
${=def now=new Date()+10;now.format(“yyyy-MM-dd”)}${=def now=new Date();now.format(“yyyy-MM-dd”)}
如果您需要它是昨天或未来的日期,就像+x to date()
例子
${=def now=new Date()+10;now.format(“yyyy-MM-dd”)}我已经做了40分钟了。正在尝试查找服务中发生的情况。即使在不减去天数的情况下使用上述格式${=import java.text.SimpleDateFormat;Calendar cal=Calendar.getInstance();new SimpleDateFormat(“YYYY-MM-DD”)。format(cal.getTime());}服务器持续响应的“2016-02-32”不是“date”的有效值。如果我只是硬编码2016-02-01的日期,那么它会过得很好。我用SoapUI非专业版5.0.0对它进行了本地测试,在SoapUI中有一个模拟服务,它工作得很好。可能有一些问题:您的搜贝版本,或者您已经将一些非公历设置为默认日历?尝试在SoapUI中设置模拟服务,并验证生成的请求是否符合预期。如果请求是正确的,那么服务器端可能有问题?我以前没有注意到的是日期格式模式不正确。应该是“yyyy-MM-dd”。谢谢你,MJar,我一回到办公室就会试试。很好。我一点也没看到。在过去的一个月里,它正好工作得很好,因为所有的日子都是有效的。32不是一个月的有效日期。非常感谢你的帮助。我相信这会纠正我在SoapUI中遇到的问题。我已经做了40分钟了。正在尝试查找服务中发生的情况。即使在不减去天数的情况下使用上述格式${=import java.text.SimpleDateFormat;Calendar cal=Calendar.getInstance();new SimpleDateFormat(“YYYY-MM-DD”)。format(cal.getTime());}服务器持续响应的“2016-02-32”不是“date”的有效值。如果我只是硬编码2016-02-01的日期,那么它会过得很好。我用SoapUI非专业版5.0.0对它进行了本地测试,在SoapUI中有一个模拟服务,它工作得很好。可能有一些问题:您的搜贝版本,或者您已经将一些非公历设置为默认日历?尝试在SoapUI中设置模拟服务,并验证生成的请求是否符合预期。如果请求是正确的,那么服务器端可能有问题?我以前没有注意到的是日期格式模式不正确。应该是“yyyy-MM-dd”。谢谢你,MJar,我一回到办公室就会试试。很好。我一点也没看到。在过去的一个月里,它正好工作得很好,因为所有的日子都是有效的。32不是一个月的有效日期。多谢各位
${=import java.text.SimpleDateFormat; Calendar cal = Calendar.getInstance(); new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX").format(cal.getTime());}
${=import java.text.SimpleDateFormat; Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, -6); new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());}