草庐IT

Datetime

全部标签

java - 在 Web 应用程序中处理时区

在我们的Web应用程序中,我们需要显示并输入不同时区不同国家的日期时间信息。现在,我们正在为每个国家/地区维护单独的Web服务器和单独的数据库(oracle11g)。我们计划将所有内容合并为一个具有单个数据库的门户(oracle11g)。此门户应在用户本地时区捕获/显示日期和时间。到目前为止,我已经搜索了这个,我得到了以下建议。1)将Web服务器和数据库服务器的时区设置为UTC,并在获取数据(数据和时间)时转换为用户本地时区。如果你建议这种方法,那么请澄清以下具体问题。大多数时候我们单独捕获日期,是否需要总是捕获日期和时间以及时区?在存储我们需要转换用户本地时间的日期和时间时在java

java - 考虑夏令时将本地时间转换为 UTC 时间,反之亦然

我知道如何将本地时间转换为UTC时间,反之亦然。但是在执行此操作时,我对夏令时(DST)处理感到非常困惑。所以任何人都可以回答以下问题:1.在时区之间转换时,java是否在内部处理DST?2.时区转换时需要做什么?3.有什么好的文章解释的比较清楚吗?提前致谢。 最佳答案 您确定知道如何将日期与UTC相互转换吗?正确吗?恐怕,我对此表示怀疑。是的。您不需要转换,您只需要分配正确的时区。您需要一篇文章做什么?好的,我正在处理这个问题,但现在让我在这里给出答案。第一件事。您的程序应该在内部以UTC时区存储日期(或日历)。好吧,事实上在GM

Java 日期验证 joda 时间

有没有办法验证给定日期(yyyy-MM-dd)是否为有效日期?它也应该处理闰年。例如(2015-02-29)应该是无效的。我正在检索字符串形式的日期并将其放入jodaDateTime对象中。 最佳答案 之前的回复应该没问题,但考虑到OP特别要求Joda-Time版本,此替代方案也适用:@Testpublicvoidtest(){StringtestDateOk="2015-02-25";//Normaldate,noleapyearStringtestDateOk2="2016-02-29";//Edge-caseforleapye

java - 使用 Mockito 模拟 Joda DateTime 方法

我希望millis返回指定的值。publiclongmyMethod(){DateTimenowDateTime=newDateTime(DateTimeZone.UTC);longmillis=nowDateTime.getMillis();System.out.println(millis);}我试过了,但没有成功。@RunWith(PowerMockRunner.class)@PrepareForTest({DateTime.class})@PowerMockIgnore({"javax.crypto.*","javax.management*"})......publicvoi

java - 为什么 `GMT+8` 无法使用模式 `O` 进行解析,尽管是直接从文档中复制的?

为什么以下无法运行,日期时间字符串无法解析为OffsetDateTime?StringinputOdt="2016-01-23T12:34:56GMT+8";DateTimeFormatterformatterOdt=DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssO");OffsetDateTimeodt=OffsetDateTime.parse(inputOdt,formatterOdt);在MacOSXElCapitan10.11.4上使用Java(TM)SE运行时环境(build1.8.0_92-b14)。产生错误:Excep

java - 使用java8将字符串转换为日期

我正在尝试使用java8将字符串转换为日期格式。下面是我的代码。即使在提到格式模式为MM/dd/yyyy之后,我收到的输出也是yyyy/DD/MM格式。有人可以指出我做错了什么吗?Stringstr="01/01/2015";DateTimeFormatterformatter=DateTimeFormatter.ofPattern("MM/dd/yyyy");LocalDatedateTime=LocalDate.parse(str,formatter);System.out.println(dateTime); 最佳答案 那是因

java - DateTimeFormatterBuilder 与 YEAR 字段的指定 parseDefaulting 冲突

我有以下格式化程序:DateTimeFormatterformatter=newDateTimeFormatterBuilder().appendPattern("yyyyMM").parseDefaulting(ChronoField.SECOND_OF_MINUTE,0).parseDefaulting(ChronoField.MINUTE_OF_HOUR,0).parseDefaulting(ChronoField.HOUR_OF_DAY,0).parseDefaulting(ChronoField.DAY_OF_MONTH,1).parseDefaulting(ChronoFi

java - 基于区域设置的 Joda-Time DateTime 格式

我从另一个系统收到一个字符串日期并且我知道该日期的区域设置(也可以从另一个系统获得)。我想将此字符串转换为Joda-TimeDateTime对象而不显式指定目标模式。例如,我想仅使用语言环境将此字符串“09/29/2014”转换为日期对象,而不是通过将日期格式硬编码为“mm/dd/yyyy”。我无法对格式进行硬编码,因为这会根据我收到的日期的本地信息而有所不同。 最佳答案 StringlocalizedCalendarDate=DateTimeFormat.shortDate().print(newLocalDate(2014,9,

java - Instant 和 ZonedDateTime 之间的兼容性

据我了解,ZonedDateTime实际上是Instant的增强版。它拥有Instant拥有的所有数据(沿UTC时间线的精确值),以及时区信息。所以我天真的假设是ZonedDateTime是一个Instant并且任何采用Instant的方法都会很乐意采用ZonedDateTime代替。此外,我希望isBefore()、isAfter()等在Instant和ZonedDateTime之间无缝工作.查看Instant的API文档和ZonedDateTime,这一切都不是这样。我可以将Instant与Instant以及ZonedDateTime与ZonedDateTime进行比较,但这两个类

解析 DateFormat 时的 Java 时区

我有如下解析日期的代码:StringALT_DATE_TIME_FORMAT="yyyy-MM-dd'T'HH:mm:ss.SSSZ";SimpleDateFormatsdf=newSimpleDateFormat(ALT_DATE_TIME_FORMAT);Datedate=sdf.parse(requiredTimeStamp);它工作正常,突然,它停止工作了。事实证明,管理员在服务器上进行了一些配置更改,当前返回的日期为“2010-12-27T10:50:44.000-08:00”,上述模式无法对其进行解析。我有两个问题:首先是什么模式将解析JVM以上述格式返回的日期(具体来说,