标签: java-time

如何在文本字段中格式化 java.time.LocalDate?

我试图java.time.LocalDate在我的报告中显示以下格式:

<textField pattern="EEEEE dd MMMMM yyyy">
    <reportElement x="64" y="0" width="150" height="20" uuid="5e003c53-2327-4f75-9adf-831a3bb494ff"/>
    <textElement verticalAlignment="Middle">
        <font isBold="true" isUnderline="true"/>
    </textElement>
    <textFieldExpression><![CDATA[$F{dateFacture}]]></textFieldExpression>
</textField>
Run Code Online (Sandbox Code Playgroud)

但我得到的日期如下:2017-03-09。是由于 java.time.LocalDate 类型造成的吗?

java jasper-reports java-time

5
推荐指数
1
解决办法
5413
查看次数

相当于 Java 8 中的 new Date().getTime()

在 Java 8 之前,我在代码中使用new Date().getTime()以获取当前时间戳作为数字。我可以假设这Instant.now().toEpochMilli()与传统方式一样安全吗?它是否具有完全相同的行为和相似的性能特征?有没有更好的选择?

我想在所有周围组件仍然使用的生态系统中使用 Java 8 方式new Date().getTime(),因此产生的结果必须一致。

java timestamp java-time

5
推荐指数
2
解决办法
1697
查看次数

OffsetDateTime - 打印偏移量而不是 Z

我有这个代码:

String date = "2019-04-22T00:00:00+02:00";

OffsetDateTime odt = OffsetDateTime
      .parse(date, DateTimeFormatter.ISO_OFFSET_DATE_TIME)                             
      .withOffsetSameInstant(ZoneOffset.of("+00:00"));

System.out.println(odt);
Run Code Online (Sandbox Code Playgroud)

这个打印: 2019-04-21T22:00Z

如何打印2019-04-21T22:00+00:00?用 offset 代替Z.

java datetime-format timezone-offset java-time

5
推荐指数
2
解决办法
2077
查看次数

如何将 org.threeten.bp.OffsetDateTime 转换为 java.time.OffsetDateTime?

我正在使用使用 ThreeTen 日期类型的客户端库(第三方,不是我的,无法更改)。我的项目是 Java 11 并使用 Java 8 日期类型。将 ThreeTeen 对象转换为 Java 8 对象的推荐方法是什么?

java datetime datetime-conversion java-time threetenbp

5
推荐指数
1
解决办法
2880
查看次数

为什么 java.time 对日期使用“of”而不是“new”?

在新的日期包的Java 8中,我们使用“更改新日期()”到“LOCALDATE的。的()”。

Date d = new Date(year, month, dayOfMonth);            //Old way
LocalDate d2 = LocalDate.of(year, month, dayOfMonth);  //new way
Run Code Online (Sandbox Code Playgroud)

当您想要一个新对象时,您通常使用new关键字。这是创建新对象的直观方式。

有时,当您需要延迟初始化的单例时,您可以使用静态方法来获取实例。在这种情况下,您必须调用它,getInstance()以便开发人员知道会发生什么。

这种新语法使代码不那么直观。它迫使您学习如何处理特定对象,而不是简单地使用它们。

这种变化有什么好的理由吗?

java date java-8 java-time

5
推荐指数
1
解决办法
274
查看次数

哪个 `Clock` 实现是 java.time 中的默认实现?

Java 8 及更高版本中内置的java.time框架包含Clock该类。这个类提供了一些对测试我们的日期时间处理代码有用的变体。

Instant.now( Clock.fixed?( myInstant , myZoneId ) )
Run Code Online (Sandbox Code Playgroud)

哪个Clock实例表示在java.time调用中隐式使用的默认值,其中我们没有指定Clock?

Instant.now()
Run Code Online (Sandbox Code Playgroud)

我想默认是:

……但文档没有说明是哪个。

在进行单元测试时,有时我们需要一个行为改变的时钟。但是当我们想显式传递一个Clock提供默认行为的对象时,我们使用什么?

java clock java-time

5
推荐指数
1
解决办法
439
查看次数

将约会存储在 SQL 数据库(例如 Postgres)中以与 java.time 框架一起使用

假设我们在 01/23/2021 21:00 "Europe/Rome"有一个在意大利米兰的约会。此约会以 UTC 格式保存到数据库中类似于 SQL 标准类型的列中TIMESTAMP WITH TIME ZONE。

现在,居住在美国纽约的用户需要了解此约会何时进行。我们可以向用户显示转换为“America/New_York”时区的日期时间,或者改为“Europe/Rome”TZ。一旦用户从纽约飞往米兰,他就会发现这两个信息都很有用。

关键是存储转换为相同 TZ 引用 (UTC) 的所有内容,并根据您使用与现代 Java 捆绑的java.time框架的目标来操作日期时间。

有道理还是有什么问题/遗漏?

java database postgresql timezone java-time

5
推荐指数
1
解决办法
221
查看次数

Duration#toDays 和 Duration#toDaysPart 是多余的吗?

在 Java 8 中,Duration该类提供了该toDays方法,将总天数作为与日历天无关的 24 小时时间块的计数返回。

在 Java 9 中,Duration该类获得了方便的to…Part方法:toDaysPart, toHoursPart, toMinutesPart, toSecondsPart, toMillisPart, toNanosPart。我了解小时、分钟等的需要。但我想知道toDaysPart.

我的问题是:

? 是否会Duration#toDays并且Duration#toDaysPart曾经为特定Duration对象返回不同的值?

java duration java-8 java-time java-9

5
推荐指数
1
解决办法
184
查看次数

java.text.ParseException:无法解析的日期:“...”

我使用此代码收到此错误:

SimpleDateFormat sdf = new SimpleDateFormat("EEEE dd MMMM HH:mm yyyy",myDateFormatSymbols);
sdf.parse("????????? 12 ??????? 07:00 2021");
Run Code Online (Sandbox Code Playgroud)

是 "Monday 12 April 07:00 2021"。问题是,每当我将日期从星期一更改为星期二 ( "????????") 时,我都不会收到此错误,并且代码有效。这是代码myDateFormatSymbols:

private final static DateFormatSymbols myDateFormatSymbols = new DateFormatSymbols(){
        @Override
        public String[] getWeekdays(){
             return new String[]{"?????????","????????", "??????", "??????", "???????", "??????", "??????"};
        }
        @Override
        public String[] getMonths() {
            return new String[]{...};
        }
}
Run Code Online (Sandbox Code Playgroud)

所有月份和工作日都正常工作,似乎这个错误只发生在星期一。

java dayofweek simpledateformat datetime-parsing java-time

5
推荐指数
2
解决办法
495
查看次数

LocalTime.MIDNIGHT 与 LocalTime.MIN - 有什么区别吗?

我最近使用LocalDate.atStartOfDay()和回答了一些问题LocalDate.atTime(LocalTime.MIN)。
我想知道为什么没有LocalDate.atEndOfDay()或类似的,所以必须使用LocalDate.atTime(LocalTime.MAX)才能获得特定日期的最后时刻(我认为是 nanos)。

我查看了LocalDateand的来源并LocalTime对此感到有些困惑:

/**
 * Combines this date with the time of midnight to create a {@code LocalDateTime}
 * at the start of this date.
 * <p>
 * This returns a {@code LocalDateTime} formed from this date at the time of
 * midnight, 00:00, at the start of this date.
 *
 * @return the local date-time of midnight at the start of this date, not null
 */ …
Run Code Online (Sandbox Code Playgroud)

java datetime localtime java-time localdate

5
推荐指数
1
解决办法
175
查看次数