我正在尝试转换java。util。日期至java。时间本地日期:
[java.util.Date instance].toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
但是,当[java.util.Date实例]
有例如22:25的一天时间时,我选择ZoneId,例如:ZoneId.of("Asia/Sing")
。
即将推出的本地日期将有不同的日期(因为该区域增加了6小时),例如欧洲/明斯克:
printing java.util.Date: Thu Mar 04 22:25:00 CET 2021
printing converted java.util.Date to java.time.LocalDate with Europe/Minsk: 2021-03-04
printing converted java.util.Date to java.time.LocalDate with Asia/Singapore: 2021-03-05
我想在结果的LocalDate中保留与该实例相同的日期。一些方法如何解决这个问题?我想可能有几种方法。
您可以简单地将Date
的值复制到LocalDate
而无需转换数据:
LocalDate.of(date.getYear(), date.getMonth()+1, date.getDate());
Instant
始终以UTC为单位提供日期时间,如果要保持相同的日期,需要使用UTC的区域偏移量。
演示:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.util.Date;
import java.util.Locale;
public class Main {
public static void main(String[] args) throws ParseException {
String strDateTime = "10/02/2021 22:25";
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm", Locale.ENGLISH);
Date date = sdf.parse(strDateTime);
Instant instant = date.toInstant();
ZonedDateTime zdt = instant.atZone(ZoneOffset.UTC);
LocalDate localDate = zdt.toLocalDate();
System.out.println(localDate);
}
}
输出:
2021-10-02
从Trail:date-time了解有关现代日期时间API的更多信息。
java。utildate-time API及其格式化API、SimpleDataFormat
已经过时且容易出错。建议完全停止使用它们,并切换到现代日期时间API。无论出于何种原因,如果您必须坚持使用Java 6或Java 7,那么您可以使用三个后端端口,这三个后端端口支持大部分Java。Java 6的时间功能
您可以将其转换为即时,将时区设置为UTC,因为java.util.Date使用UTC。
public static LocalDate convert (Date date) {
return date.toInstant()
.atZone(ZoneId.of("UTC"))
.toLocalDate();
}
问题内容: 我有一个日期时间格式的字段,当日期更好并且与数据库的其余部分更一致时,我想进行转换。无论如何,时间部分都是00:00:00。 如何在MySQL中做到这一点? 谢谢。 问题答案: 如果要在-Statement中使用,请使用运算符: 如果要在结构上更改表,只需将数据类型更改为(当然,只有在不影响依赖于此字段的应用程序的情况下,才这样做)。 两者都将消除时间部分。
我正在尝试将java Date转换为java LocalTime,我的代码如下所示 当我打印对话前后的日期时,看起来是这样的: 它看起来像是在向后转换,但我不知道怎么做!
我正在尝试将日期插入我的PostgreSQL数据库。以下是我在java应用程序中解析日期的方式: 在我的PostgreSQL数据库中。我将其作为带有时区的。处理和插入它的理想方式是什么? 数据库期望的示例。
在Java中获取计数后,如何将“时间戳”转换为? 我目前的代码如下: 这里我得到的输出是2012-08-07 0,但是等效查询返回3。为什么我得到0?
本文向大家介绍Java日期时间以及日期相互转换,包括了Java日期时间以及日期相互转换的使用技巧和注意事项,需要的朋友参考一下 Java日期时间,以及相互转化,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
我有一个日期时间,格式为2019年4月30日星期二16:00:00 0800,这是RFC 2822格式的日期 我需要将其转换为日期时间0800中的给定时区 如果我总结一下, 如何在Java中实现这一点?我已经尝试了下面的代码,但它给出的时间比当前时间短08小时,即