小编Jod*_*hen的帖子

将java.util.Date转换为java.time.LocalDate

java.util.Date对象转换为新的JDK 8/JSR-310 的最佳方法是什么java.time.LocalDate

Date input = new Date();
LocalDate date = ???
Run Code Online (Sandbox Code Playgroud)

java datetime java-8 java-time

463
推荐指数
9
解决办法
39万
查看次数

在java.time.LocalDateTime和java.util.Date之间转换

Java 8有一个全新的日期和时间API.此API中最有用的类之一是LocalDateTime,用于保存与时区无关的日期时间值.

java.util.Date为此目的,使用遗留类可能有数百万行代码.因此,当连接新旧代码时,需要在两者之间进行转换.由于似乎没有直接的方法来实现这一点,怎么办呢?

java datetime java-8 java-time

456
推荐指数
7
解决办法
39万
查看次数

Java 8 Date Time API(java.time)和Joda-Time之间的差异

我知道有关于java.util.Date和Joda-Time的问题.但经过一番挖掘后,我找不到关于java.time API(Java 8中新增,JSR 310定义)和Joda-Time之间差异的线程.

我听说Java 8的java.time API比Joda-Time更清洁,可以做得更多.但我找不到比较两者的例子.

  • 什么java.time可以做到Joda-Time不能?
  • java.time能比Joda-Time做得更好吗?
  • java.time的性能更好吗?

java datetime jodatime java-8 java-time

258
推荐指数
3
解决办法
7万
查看次数

我应该使用Java日期和时间类,还是使用像Joda Time这样的第三方库?

我正在创建一个基于网络的系统,该系统将在世界各国使用.必须存储的一种数据是日期和时间.

使用Java日期和时间类与第三方库(如Joda时间)相比有哪些优缺点?我想这些第三方库存在的原因很充分,但我自己从未真正比较过它们.

java time date jodatime

147
推荐指数
5
解决办法
3万
查看次数

使用新的日期时间API格式化日期

我正在使用新的日期时间API,但在运行时:

public class Test {         
    public static void main(String[] args){
        String dateFormatted = LocalDate.now()
                                        .format(DateTimeFormatter
                                              .ofPattern("yyyy-MM-dd HH:mm:ss"));
        System.out.println(dateFormatted);
    }
}
Run Code Online (Sandbox Code Playgroud)

它抛出:

Exception in thread "main" java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: HourOfDay
    at java.time.LocalDate.get0(LocalDate.java:680)
    at java.time.LocalDate.getLong(LocalDate.java:659)
    at java.time.format.DateTimePrintContext.getValue(DateTimePrintContext.java:298)
    at java.time.format.DateTimeFormatterBuilder$NumberPrinterParser.format(DateTimeFormatterBuilder.java:2543)
    at java.time.format.DateTimeFormatterBuilder$CompositePrinterParser.format(DateTimeFormatterBuilder.java:2182)
    at java.time.format.DateTimeFormatter.formatTo(DateTimeFormatter.java:1745)
    at java.time.format.DateTimeFormatter.format(DateTimeFormatter.java:1719)
    at java.time.LocalDate.format(LocalDate.java:1685)
    at Test.main(Test.java:23)
Run Code Online (Sandbox Code Playgroud)

查看LocalDate类的源代码时,我看到:

  private int get0(TemporalField field) {
        switch ((ChronoField) field) {
            case DAY_OF_WEEK: return getDayOfWeek().getValue();
            case ALIGNED_DAY_OF_WEEK_IN_MONTH: return ((day - 1) % 7) + 1;
            case ALIGNED_DAY_OF_WEEK_IN_YEAR: return ((getDayOfYear() - 1) % 7) + …
Run Code Online (Sandbox Code Playgroud)

java datetime java-8 java-time

100
推荐指数
3
解决办法
6万
查看次数

如何将LocalDate转换为Instant?

我使用Java 8的新DateTime API.

如何将LocalDate转换为Instant?我得到一个例外

LocalDate date = LocalDate.of(2012, 2, 2);
Instant instant = Instant.from(date);
Run Code Online (Sandbox Code Playgroud)

而且我不明白为什么.

java datetime java-8 java-time

89
推荐指数
2
解决办法
6万
查看次数

如何从LocalDate和LocalDateTime中提取纪元?

如何LongLocalDateTime或的实例中提取纪元值LocalDate?我尝试了以下内容,但它给了我其他结果:

LocalDateTime time = LocalDateTime.parse("04.02.2014  19:51:01", DateTimeFormatter.ofPattern("dd.MM.yyyy  HH:mm:ss"));
System.out.println(time.getLong(ChronoField.SECOND_OF_DAY)); // gives 71461
System.out.println(time.getLong(ChronoField.EPOCH_DAY)); // gives 16105
Run Code Online (Sandbox Code Playgroud)

我想要的只是1391539861本地日期时间的值"04.02.2014 19:51:01".我的时区是Europe/OsloUTC + 1,夏令时.

time epoch java-8 java-time

88
推荐指数
3
解决办法
9万
查看次数

使用Joda Date&Time API来解析多种格式

我正在使用Joda解析包含日期/时间的第三方日志文件.日期/时间是两种不同格式之一,具体取决于我正在解析的日志文件的年龄.

目前我的代码如下:

try {
    return DateTimeFormat.forPattern("yyyy/MM/dd HH:mm:ss").parseDateTime(datePart);
} catch (IllegalArgumentException e) {
    return DateTimeFormat.forPattern("E, MMM dd, yyyy HH:mm").parseDateTime(datePart);
}
Run Code Online (Sandbox Code Playgroud)

这有效但违反了Joshua Bloch关于Effective Java 2nd Edition的建议(第57项:仅在特殊条件下使用例外).它还使得很难确定是否由于日志文件中的日期/时间搞乱而发生IllegalArgumentException.

你能否提出一个不会滥用例外的更好的方法?

java parsing exception jodatime

74
推荐指数
3
解决办法
3万
查看次数

休眠4和joda-time

他们幸福地结婚了吗?

我正在使用最新版本的hibernate(4)和joda-time hibernate支持的 1.3版本,我也相信它是当前的最新版本.

使用注释时,一切似乎都正常工作(按预期创建日期列):

@Column
@Type(type="org.joda.time.contrib.hibernate.PersistentLocalDate")
private LocalDate myDate; 
Run Code Online (Sandbox Code Playgroud)

将这些版本一起使用是否存在任何已知问题?

更新 确定列已创建但无法填充任何数据:

处理程序处理失败; 嵌套异常是java.lang.AbstractMethodError:org.joda.time.contrib.hibernate.PersistentLocalDateTime.nullSafeSet

它们是不兼容的,我应该使用usertype.见下面的答案.

java hibernate jodatime

62
推荐指数
2
解决办法
3万
查看次数

55
推荐指数
4
解决办法
5万
查看次数

标签 统计

java ×9

java-8 ×6

java-time ×6

datetime ×5

jodatime ×5

date ×2

time ×2

epoch ×1

exception ×1

hibernate ×1

parsing ×1