草庐IT

dateTime

全部标签

java - 为什么将 Joda DateTime 转换为 Calendar 并返回会更改 centuryOfEra 字段而不是其他任何内容?

我今天在玩JodaTime,我希望这个测试能通过:@TestpublicvoiddateTimeShouldRoundTrip(){DateTimeoriginalDateTime=newDateTime(2013,7,4,0,0);DateTimeroundTrip=newDateTime(originalDateTime.toGregorianCalendar());assertThat(roundTrip,is(originalDateTime));}但是失败了。我在JodaTime2.1和2.2下都检查过了。进一步检查(使用SamePropertyValuesAs匹配器)表明失

java - 在 Java 8 中按时间段解析 ISO 日期

我想用Java8DateTimeAPI替换JodaTime。我有ISO-8601期间描述=P2W5DT11H8M在JodaTime中,我通过执行以下代码非常简单地解析它:Period.parse("P2W5DT11H8M")我得到了成功的Period对象。我可以在Java8中做同样的事情吗? 最佳答案 Java8中的Period只有年/月/日组件。Duration具有小时/分钟/秒组件。看来您需要手动解析字符串。一个选项可能类似于下面的代码(您需要添加输入验证等)-可能有更好的选择。publicstaticvoidmain(Stri

MSQL中DATETIME或TIMESTAMP的区别

MSQL中DATETIME或TIMESTAMP的区别今天来聊聊MSQL中DATETIME或TIMESTAMP以及具体细节。两者对比MySQL中的DATETIME和TIMESTAMP类型都用于存储日期和时间信息,但它们之间存在一些关键的区别:范围:DATETIME类型的值范围从1000-01-0100:00:00到9999-12-3123:59:59。TIMESTAMP类型的值范围从1970-01-0100:00:01UTC到2038-01-1903:14:07UTC。存储空间:DATETIME类型需要8字节的存储空间。TIMESTAMP类型需要4字节的存储空间。时区:DATETIME不保存时区

java - jodatime 在解析某些日期格式时的奇怪行为

我试图在yyyy部分之前使用带前导“+”的jodatime解析日期字符串。本以为会抛出错误,但实际上并没有抛出错误。我得到的输出没有任何意义:System.out.println(DateTimeFormat.forPattern("yyyyMMdd").parseDateTime("20130101"));//2013-01-01T00:00:00.000+05:30(Expected)(case1)System.out.println(DateTimeFormat.forPattern("yyyyMMdd").parseDateTime("+20130101"));//20130-

java - 天真地用 Clock.systemDefaultZone().millis() 替换 System.currentTimeMillis() 是否安全?

Java8引入了java.time.Clock接口(interface),它应该允许我有效地模拟系统时间调用(太棒了!)。我想天真地用对someClock.millis()的调用替换对System.currentTimeMillis()的调用,但我不清楚这些根据Clock.system*文档中给出的caviet,两个时钟实际上将在所有情况下返回相同的值,该文档声明它们使用“...最佳可用系统时钟”。System.currentTimeMillis()没有指定任何关于使用最佳可用时钟的类似声明。 最佳答案 嗯,不,你不能保证它会完全一

java - JPA entityManager.merge 将 LocalDateTime 转换为 SQLServer 2012 DATETIME2

我有一个以DateTime列作为主键的表:USE[idatest]GOCREATETABLE[dbo].[DatesTbl]([creationDate][datetime]NOTNULLCONSTRAINT[PK_DatesTbl]PRIMARYKEYCLUSTERED([creationDate]ASC))GO当我执行entityManager.merge时,我得到重复,PK违规,因为datetime为milisec保留3位数字,但hibernet将其转换为datetime2,它为milisec保留7位数字。在java代码中,我使用LocaDatetime,它包含10位毫秒数。我已

Java 8 设置全局时间格式化程序

我想将我自己的DateTimeFormatter设置为全局格式化程序。当我执行以下行时:ZonedDateTime.now();我得到:2016-03-30T08:58:54.180-06:00[America/Chicago]如果我这样做:ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME)我得到:Wed,30Mar20169:00:06-0600我想要上面打印的内容,但使用am/pm,所以我制作了自定义格式化程序并像这样打印时间:DateTimeFormatterFORMATTER=DateTimeForm

java - java.time API 如何确定政府对区域规则的更改?

我不住在使用夏令时的国家/地区。我在数据库中保存了一个futureLocalDateTime、与UTC的偏移量和ZoneId该地区的政府更改DST规则那个future的时间到了,我将检索那个区域的LocalDateTime如果我应用ZoneId和Offset来获取该区域中的LocalDateTime,java.timeAPI如何正确获取它?它怎么知道政府改变了规则?它是否从互联网上获取更新? 最佳答案 时区更新通常随JRE更新一起提供。每当某个特定地区的时区发生变化时,此信息都会包含在下一版本的JRE中。Here您可以找到有关JRE

java - 使用 Jackson 将 Java8 LocalDateTime 序列化为 UTC 时间戳

我刚刚根据新的(ish)java8时间包将我的许多日期转换为LocalDateTime。在我开始尝试序列化和反序列化之前,我一直很喜欢这种转换。我如何配置Jackson来支持它们?:LocalDateTime--serialize-->UTC时间戳--deserialize-->LocalDateTime?这里有很多关于转换为格式化字符串的资料,但我似乎找不到针对utc时间戳的现成解决方案。 最佳答案 您可以为LocalDateTime自定义序列化器和反序列化器,例如:CustomLocalDateTimeSerializerimp

java - 在 Spark Scala 中处理微秒

我使用Scala将PostgreSQL表作为数据框导入到spark中。数据框看起来像user_id|log_dt--------|-------96|2004-10-1910:23:54.01020|2017-01-1212:12:14.931652我正在将此数据帧转换为log_dt的数据格式为yyyy-MM-ddhh:mm:ss.SSSSSS。为此,我使用以下代码使用unix_timestamp函数将log_dt转换为时间戳格式。valtablereader1=tablereader1Df.withColumn("log_dt",unix_timestamp(tablereader1