我有一个Calendar实例,它是javax.xml.bind.DatatypeConverter.parseDateTime
通过JAXB
的方法从XSD datetime解析的。
在运行时,我在Web服务中,我想知道原始的xsd日期时间是否有效(根据月…
ect,月<12,日<31、30、29、28)。示例:这是一个有效日期:2015-07-30T09:32:05.543+02:00
而不是:2015-07-35T09:32:05.543+02:00
我尝试setLenient
在Web服务中的实例上使用,但是当原始日期错误时,它似乎没有引发异常。
有什么办法吗?我的猜测是告诉JAXB在global.jaxb
文件中以正确的方式进行操作,这是我现在使用的一种方式:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxb:bindings version="2.0" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" xmlns:xs="http://www.w3.org/2001/XMLSchema"
jaxb:extensionBindingPrefixes="xjc">
<jaxb:globalBindings>
<xjc:simple/>
<xjc:serializable uid="-1"/>
<jaxb:javaType name="java.util.Calendar" xmlType="xs:dateTime"
parseMethod="javax.xml.bind.DatatypeConverter.parseDateTime"
printMethod="javax.xml.bind.DatatypeConverter.printDateTime"/>
</jaxb:globalBindings>
</jaxb:bindings>
任何帮助,将不胜感激。谢谢。
OffsetDateTime.parse( "2015-07-35T09:32:05.543+02:00" )
… catch ( DateTimeParseException e )
麻烦的旧日期,时间类,如java.util.Date
,java.util.Calendar
和java.text.SimpleDateFormat
现在的遗产,由取代java.time内置到Java 8的Java 9班。
同样,Joda-Time项目现在处于维护模式,团队建议迁移到java.time类。
OffsetDateTime
和 DateTimeParseException
要确定无效的日期时间字符串,请尝试分析和捕获异常。假设您的输入具有与UTC的偏移量,但没有时区,则将其解析为OffsetDateTime
对象。无效的输入throw
DateTimeParseException
。
String inputGood = "2015-07-30T09:32:05.543+02:00" ;
String inputBad = "2015-07-35T09:32:05.543+02:00" ;
try{
// Good
OffsetDateTime odtGood = OffsetDateTime.parse( inputGood ) ;
System.out.println( "odtGood.toString(): " + odtGood ) ;
// Bad
OffsetDateTime odtBad = OffsetDateTime.parse( inputBad ) ;
System.out.println( "odtBad.toString(): " + odtBad ) ;
} catch ( DateTimeParseException e ) {
System.out.println( e ) ;
}
请参阅在IdeOne.com上实时运行的代码。
odtGood.toString():2015-07-30T09:32:05.543 + 02:00
java.time.format.DateTimeParseException:无法解析文本‘2015-07-35T09:32:05.543 +
02:00’:DayOfMonth的值无效(有效值1-28/31):35
该java.time框架是建立在Java
8和更高版本。这些类取代麻烦的老传统日期时间类,如java.util.Date
,Calendar
,和SimpleDateFormat
。
现在处于维护模式的Joda-
Time项目建议迁移到java.time类。
要了解更多信息,请参见Oracle教程。并在Stack
Overflow中搜索许多示例和说明。规格为JSR 310。
在哪里获取java.time类?
该 ThreeTen-额外
项目与其他类扩展java.time。该项目是将来可能向java.time添加内容的试验场。你可能在这里找到一些有用的类,比如Interval
,YearWeek
,YearQuarter
,和更多。
对于我的刽子手游戏,我想有一堆错误信息来检查输入的不止一个字母,猜测同一个字母两次,等等。到目前为止我的完整代码: 我遇到的最大问题是检查用户是否输入了相同的字母两次。所以你只能猜一次字母表中的一个字母。此外,它检查用户输入的多个字母是否有错误的代码,我相信,因为如果我不希望它将这些字母添加到猜测字母框中,它会以任何方式添加这些字母。(即,用户猜测“hf”,在猜测的字母中出现“hf”,在这里它应该
问题内容: 我感到奇怪的是,Date在Java中创建对象的最明显的方法已被弃用,并且似乎已被使用宽大日历的不太明显的方法所“替代”。 如何检查以日,月和年的组合形式给出的日期是否为有效日期? 例如,2019-02-31(如yyyy-mm-dd)将是无效日期。 问题答案: 当前的方法是使用日历类。它具有setLenient方法,该方法将验证日期和引发异常,如果超出示例,则抛出异常。 忘记添加:如果你
我为跳棋游戏创建了两个类。一个是木板,另一个是碎片。我所面临的困难是,对于这些碎片,我似乎无法让它们移动,也无法让它们正确地停留在那个位置,事实上,由于我不了解这里到底出了什么问题,我无法再前进了。有人能纠正我做错了什么吗。 这是拼图课
我正在使用docker-compose在linux服务器(centos)中管理我的容器“abc”。 我想完成的步骤: 1)docker撰写拉abc以拉取我的最新图像 2)docker命令检查我的容器'abc'是否需要更新(可能???) 3) 如果我的容器是“abc”,我将执行docker编写up-d 备注:我知道第3步是检查并在必要时更新容器,但如果第2步返回True,我需要执行预任务
问题内容: 我有一系列包含开始日期和结束日期的范围。我想检查日期是否在该范围内。 和似乎有点尴尬。我真正需要的是这样的伪代码: 不确定是否相关,但是我从数据库中提取的日期带有时间戳。 问题答案: 对我来说似乎并不尴尬。请注意,我是这样写的,而不是 因此,即使testDate与以下几种情况之一完全相同,它也可以正常工作。
如何检查Redis服务器版本? 那么如何检查Redis服务器版本呢?