相关疑难解决方法(0)

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

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

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

java datetime java-8 java-time

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

Java 6中对ISO 8601格式的通用支持

Java 7 SimpleDateFormat通过字符X(而不是大写或小写Z)在ISO 8601格式的类中引入了支持.在Java 6中支持这样的格式需要预处理,因此最好的方法是问题.

这种新格式是Z(大写Z)的超集,另外还有两种变体:

  1. "分钟"字段是可选的(即,2位而不是4位时区有效)
  2. 冒号字符(':')可用于将2位"小时"字段与2位"分钟"字段分开.

因此,正如人们可以从Java 7文档中SimpleDateFormat看到的那样,以下3种格式现在是有效的(而不仅仅是ZJava 6中涵盖的第二种格式),当然,等效:

  1. -08
  2. -0800
  3. -08:00

正如之前关于支持这种"扩展"时区格式的特殊情况的问题所讨论的那样,始终使用':'作为分隔符,将Java 7功能向后移植到Java 6中的最佳方法是将类子SimpleDateformat类化并覆盖其parse()方法,即:

public Date parse(String date, ParsePosition pos)
{
    String iso = ... // Replace the X with a Z timezone string, using a regex

    if (iso.length() == date.length())
    {
        return null; // Not an ISO 8601 date
    }

    Date parsed …
Run Code Online (Sandbox Code Playgroud)

java regex date simpledateformat java-6

8
推荐指数
2
解决办法
8442
查看次数

如何将整数(例如19000101)转换为java.util.Date?

这是我的代码:

Integer value = 19000101 ;         
Run Code Online (Sandbox Code Playgroud)

如何将以YYYYMMDD格式表示的上述Integer 转换为YYYY-MM-DD格式 java.util.Date

java integer date data-conversion

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

如何将2018-04-10T04:00:00.000Z字符串转换为DateTime?

我从JSON API获得一个日期,看起来像这样的"2018-04-10T04:00:00.000Z".我想转换它以获得Date或String对象并获得类似"01-04-2018"的"dd-MM-YYYY".我该怎么做?

java datetime datetime-format android-studio

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

为什么在Java 8中OffsetDateTime无法解析'2016-08-24T18:38:05.507 + 0000'

表达方式

OffsetDateTime.parse("2016-08-24T18:38:05.507+0000")

导致以下错误:

java.time.format.DateTimeParseException:无法在索引23处解析文本'2016-08-24T18:38:05.507 + 0000'

另一方面,

OffsetDateTime.parse("2016-08-24T18:38:05.507+00:00")

可以正常工作。

DateTimeFormatter的文档页面提到了不带冒号的区域偏移量作为示例。我究竟做错了什么?我不想破坏我的日期字符串来安抚Java。

java date

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