标签: java-time

java 8 ZonedDateTime和OffsetDateTime有什么区别?

我已经阅读了文档,但是当我应该使用其中一个时,我仍然无法获得:

根据文档OffsetDateTime应该在将日期写入数据库时​​使用,但我不明白为什么.

java java-8 java-time

143
推荐指数
2
解决办法
4万
查看次数

LocalDate到java.util.Date,反之亦然最简单的转换?

有没有一种简单的方法将LocalDate(用Java 8引入)转换为java.util.Date对象?

通过'简单',我的意思是比这更简单:

Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎有点尴尬.

由于我们只对日期部分感兴趣,并且两个对象中都没有时区信息,为什么要明确引入时区?应该隐式采用午夜时间和系统默认时区进行转换.

java date java-8 java-time

115
推荐指数
4
解决办法
13万
查看次数

如何将java.sql.timestamp转换为LocalDate(java8)java.time?

在Java 8中,如何将Timestamp(in java.sql)转换为LocalDate(in java.time)?

java timestamp localtime java-8 java-time

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

使用新的日期时间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万
查看次数

在Java8中使用Timezone格式化LocalDateTime

我有这个简单的代码:

DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd HH:mm:ss.SSSSSS Z");
LocalDateTime.now().format(FORMATTER)
Run Code Online (Sandbox Code Playgroud)

然后我会得到以下异常:

java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: OffsetSeconds
at java.time.LocalDate.get0(LocalDate.java:680)
at java.time.LocalDate.getLong(LocalDate.java:659)
at java.time.LocalDateTime.getLong(LocalDateTime.java:720)
at java.time.format.DateTimePrintContext.getValue(DateTimePrintContext.java:298)
at java.time.format.DateTimeFormatterBuilder$OffsetIdPrinterParser.format(DateTimeFormatterBuilder.java:3315)
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.LocalDateTime.format(LocalDateTime.java:1746)
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

java java-8 java-time

100
推荐指数
2
解决办法
9万
查看次数

为什么ZoneOffset.UTC!= ZoneId.of("UTC")?

为什么

ZonedDateTime now = ZonedDateTime.now();
System.out.println(now.withZoneSameInstant(ZoneOffset.UTC)
        .equals(now.withZoneSameInstant(ZoneId.of("UTC"))));
Run Code Online (Sandbox Code Playgroud)

打印出来false

我希望这两个ZonedDateTime实例是平等的.

java datetime java-8 java-time

100
推荐指数
1
解决办法
7万
查看次数

使用threeten,LocalDate获取每月的第一天和最后一天

我有一个LocalDate需要获得该月的第一天和最后一天.我怎么做?

例如.13/2/2014我需要以LocalDate格式获得1/2/2014和28/2/2014.

使用threeten LocalDate类.

java date java-time

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

Spring Boot中的JSON Java 8 LocalDateTime格式

我在Spring Boot Application中格式化Java 8 LocalDateTime时遇到了一个小问题.使用"正常"日期我没有问题,但LocalDateTime字段转换为以下内容:

"startDate" : {
    "year" : 2010,
    "month" : "JANUARY",
    "dayOfMonth" : 1,
    "dayOfWeek" : "FRIDAY",
    "dayOfYear" : 1,
    "monthValue" : 1,
    "hour" : 2,
    "minute" : 2,
    "second" : 0,
    "nano" : 0,
    "chronology" : {
      "id" : "ISO",
      "calendarType" : "iso8601"
    }
  }
Run Code Online (Sandbox Code Playgroud)

虽然我想将其转换为:

"startDate": "2015-01-01"
Run Code Online (Sandbox Code Playgroud)

我的代码看起来像这样:

@JsonFormat(pattern="yyyy-MM-dd")
@DateTimeFormat(iso = DateTimeFormat.ISO.TIME)
public LocalDateTime getStartDate() {
    return startDate;
}
Run Code Online (Sandbox Code Playgroud)

但是上述任何一个注释都不起作用,日期会像上面那样被格式化.建议欢迎!

java json java-8 spring-boot java-time

98
推荐指数
9
解决办法
12万
查看次数

如何在Java 8中获得UTC + 0日期?

我在Java中遇到Date类问题.Date类返回本地机器日期,但我需要UTC-0.

我用Google搜索并找到了很好的JavaScript解决方案,但对Java来说没用.

如何在Java 8中获得UTC + 0日期?

java datetime java-8 java-time

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

如何将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万
查看次数

标签 统计

java ×10

java-time ×10

java-8 ×9

datetime ×4

date ×2

json ×1

localtime ×1

spring-boot ×1

timestamp ×1