我试图实现java.time来解析不同的日期格式并返回为java.sql.日期。但是,如果我使用java.sql.Date.value(LocalDate date),我将失去时间。如何获得与java.sql.日期(java.util.日期date.get时间())相同的方式?我的应用程序中可能的格式是。
ormatter.of模式("yyyy-MM-dd");日期时间格式(DateTimeForware)=DateTimeFormatter.of模式("yyyy-MM-dd");日期时间格式(DateTimeForith)=DateTimeFormatter.of模式("yyyy-MM-dd'T'HH: mm: ssZ");日期时间格式(datetimeFormatterMil=DateTimeFormatter.of模式("yyyy-MM-dd'T'HH: mm: ss. SSSZ");
import java.sql.Date;
public Date oslcStringToDate(String str) throws ParseException
{
//remove colon in time zone
Date date = null;
if (!str.equalsIgnoreCase(NULL)) {
int colonPos = str.length() - 3;
str = str != null && str.length() > 3 && str.charAt(colonPos) == ':' ?
str.substring(0, colonPos) + str.substring(colonPos + 1)
: str.endsWith("Z") ?
str.substring(0, str.length() - 1) + "+0000"
: str;
date = str.indexOf("T") > 0 ?
str.indexOf(".") > 0 ?
java.sql.Date.valueOf(LocalDateTime.parse(str, datetimeFormatterMil).toLocalDate())
: java.sql.Date.valueOf(LocalDateTime.parse(str, datetimeFormatter).toLocalDate())
: java.sql.Date.valueOf(LocalDateTime.parse(str, dateFormatter).toLocalDate());
}
return date;
}
如果我使用java。sql。日期valueOf(LocalDate-date)
永远不要将糟糕的遗留类与其替代类(JSR 310中定义的现代java.time类)混合在一起。
当递给遗留类的对象时,立即转换。您可以通过在旧类上找到的方法的值转换为…/。
LocalDate ld = myJavaSqlDate.toLocalDate() ;
而另一个方向。
java.sql.Date d = Date.valueOf( myLocalDate ) ;
JDBC 4.2及更高版本支持java。JDBC驱动程序中需要时间类。
所以只使用java.time类。不需要使用Date
,也不需要Calendar
、SimpleDateFormat
、Timestamp
等。
LocalDate类只表示一个日期,没有一天中的时间,没有时区或UTC的偏移量。因此,本地日期是一年、一个月和一天,仅此而已。
java.sql.Date
类假装表示仅日期值。但是由于糟糕的设计决策,该类继承自java.util.Date
,该类确实有一天中的时间。更令人困惑的是,java.util.Date
类应该表示UTC中的一个时刻,但仍然包含生成文本时使用的一个时区。这些遗留类是如何不执行OOP的主类。
你说:
然而,如果我使用java,我就失去了时间。sql。日期valueOf(LocalDate-date)。
如果你是指得到的java。sql。Date没有一天中的任何时间,是的,当然,这是一个功能,而不是一个bug。如上所述,由于继承,这个类的对象实际上有一个日期,但这个类假装只有一个日期(年-月-日)。
你说:
我是如何实现与java相同的方式的。sql。日期(java.util.Date Date.getTime())?
我无法理解你在这里的目标。因此,在再次建议不要使用这些糟糕的遗留类之后,我将布局一些可能的类型以用于SQL。
主要内容:类声明,字段,类方法,方法继承类表示日历系统中没有时区的日期时间,例如。 类声明 以下是类的声明 - 字段 以下是类的字段 - - 支持的最大LocalDateTime:。 - 支持的最小LocalDateTime:。 类方法 编号 方法 描述 1 Temporal adjustInto(Temporal temporal) 调整指定的时态对象以使其具有与此对象相同的日期和时间。 2 OffsetDateTime atOffs
问题内容: 到目前为止,我还没有找到明确的答案。 我想使用PreparedStatement知道SQL类型DATETIME和Java类型的等效项。 我发现:http : //www.java2s.com/Code/Java/Database-SQL- JDBC/StandardSQLDataTypeswithTheirJavaEquivalents.htm 但是它指出SQL类型“ DATETIME
我正在尝试使用MongoDB和Spring数据在Spring Boot中运行我的应用程序,但我做不到,因为IntelliJ在构建期间向我显示了此错误: 错误:java:找不到java类型。sql。日期您是否缺少对类路径的依赖关系? 我正在使用mongo java驱动程序版本3.8.2,Spring boot2.1,项目在Java11。我不知道这里出了什么问题,有人能帮我吗?
我使用的是<code>java.sql。Date将日期字段存储在我的一个域对象中。此字段映射到MySQL<code>DATE</code>列。当我试图通过Jackson将该字段序列化为JSON时,Jackson似乎没有考虑夏时制。 下面是我的域对象中的字段: 如您所见,杰克逊已被指示将时区解释为EST。我的MySQL数据库也使用EST时区: 我的问题是,对于夏令时开始和结束之间的日期,Jackso
如何将从JDBC数据库返回的转换为?