Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我可以直接将该值分配给LocalDateTime吗?_Java - Fatal编程技术网

Java 我可以直接将该值分配给LocalDateTime吗?

Java 我可以直接将该值分配给LocalDateTime吗?,java,Java,我知道我可以这样分配值: LocalDateTime session = LocalDateTime.of(2017, Month.FEBRUARY, 12, 10, 30); 但是有没有一种直接赋值的方法: LocalDateTime session = LocalDateTime.of(2019-12-15_15:14:21.629); 或者可能: LocalDateTime session = LocalDateTime.of(2019-12-15T15:14:21.629);

我知道我可以这样分配值:

LocalDateTime session = LocalDateTime.of(2017, Month.FEBRUARY, 12, 10, 30);   
但是有没有一种直接赋值的方法:

LocalDateTime session = LocalDateTime.of(2019-12-15_15:14:21.629);
或者可能:

LocalDateTime session = LocalDateTime.of(2019-12-15T15:14:21.629);

您可以在下面使用
DateTimeFormatter
这样做:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS");
LocalDateTime session = LocalDateTime.parse("2019-12-15T15:14:21.629", formatter);

您可以在
LocalDateTime
中直接解析字符串

LocalDateTime session = LocalDateTime.parse("2019-12-15T15:14:21.629");

您的后一个版本更接近:

    LocalDateTime session = LocalDateTime.parse("2019-12-15T15:14:21.629");
    System.out.println("session: " + session);
输出为:

课时:2019-12-15T15:14:21.629

LocalDateTIme
和其他java.time类不仅从
toString
方法打印ISO 8601格式。它们还解析与默认格式相同的格式,即不使用任何显式格式化程序。日期和时间之间带有
T
2019-12-15T15:14:21.629
的字符串采用国际标准ISO 8601格式。只需要在前后加上双引号,就可以告诉Java它是一个字符串

如果您想在日期和时间之间使用带有下划线(
\uuu
)的变量,您仍然需要将其用引号括起来以形成一个字符串,并另外定义一个格式化程序来解析它,如Anish B的回答所示

链接

您可以使用。javadoc是你的朋友。咨询一下。作为奖励,您将学到很多。不,无论是
2019-12-15_15:14:21.629
还是
2019-12-15T15:14:21.629
都不是Java中的有效令牌;Java中没有这样的日期文本:(实际上
2019-12-15_15
表示一个
int
,但这里没有帮助)您的模式是ISO模式,它作为常量存在,但默认情况下由LocalDateTime.parse()使用(无参数)。@JBNizet我认为是变量时间字符串。所以,我给了它。但是我已经更新了我的答案,因为它是默认的。