我想改变从服务器获取的时间并使用以下格式保存到数据库中 - “25-MAR-19 01.23.42.121000000 AM”
我怎么能用Java做到这一点?
尝试下面的代码没有帮助
import java.sql.Date;
import java.time;
public class MyClass {
public static void main(String args[]) {
final String selectedStart = "2019-03-26T04:31:40-05:00";
final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss-XXX'");
final LocalDate parsedDate = LocalDate.parse(selectedStart, formatter);
}
}
我不完全理解你的问题,但如果你只想要日期部分,你可以使用Ole.V.V回答或者使用:
LocalDate d = LocalDate.parse(selectedStart.split("T")[0]);
编辑
OffsetDateTime odt = OffsetDateTime.parse(selectedStart);
String str = odt.format(DateTimeFormatter.ofPattern("dd-MMM-uuuu hh.mm.ss.SSSSS a"));
不要定义自己的格式化程序。使用内置的DateTimeFormatter.ISO_OFFSET_DATE_TIME
。
final String selectedStart = "2019-03-26T04:31:40-05:00";
final LocalDate parsedDate = LocalDate.parse(selectedStart, DateTimeFormatter.ISO_OFFSET_DATE_TIME);
System.out.println(parsedDate);
2019-03-26
您的代码出了什么问题?
格式模式字符串中的两个字符是错误的:
-05:00
,减号是它的一部分(它可能是+
而不是正的UTC偏移量)。所以从格式模式中删除它。'T'
中正确地做了。您不能在格式模式字符串的末尾添加不匹配的单引号。也删除它。进一步提示
LocalDate
是一个错误的类。 LocalDate
持有一个没有时间的日期。你可能想要OffsetDateTime
。OffsetDateTime
)传递给JDBC驱动程序或JPA实现,然后让它处理其余部分。