[英]java.time.Instant could not be parsed from string like '2016-07-02T00:00:00Z'
[英]Convert String of type “2015-23-07T00:00:00Z” to XMLGregorianCalender of format “07/23/2015T00:00:00Z”
我正在調用一個Web服務,該服務接受日期作為格式為"07/23/2015T00:00:00Z"
但是我當前從數據庫中獲得的是"2015-23-07T00:00:00Z"
。
如何轉換XMLGregorianCalender
類型的String類型
"MM/dd/yyyy'T'HH:mm:ss.SSS'Z'"
由於該服務由某些第三方托管,因此我無法更改架構,而需要實施此轉換。
我試過了
Date d = new Date();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd'T'HH:mm:ss.SSS'Z'");
String formattedDate1 = sdf1.format(d);
Date date = sdf1.parse(formattedDate1);
GregorianCalendar gregorianCalendar;
XMLGregorianCalendar result = null;
gregorianCalendar = (GregorianCalendar)GregorianCalendar.getInstance();
gregorianCalendar.setTime(date);
result = DatatypeFactory.newInstance().newXMLGregorianCalendar(gregorianCalendar);
java.text.DateFormat outputFormat =new java.text.SimpleDateFormat("MM/dd/yyyy'T'HH:mm:ss'Z'");
java.text.DateFormat outputFormat1 =new java.text.SimpleDateFormat("yyyy-dd-MM'T'HH:mm:ss'Z'");
System.out.println(outputFormat.format(outputFormat1.parse("2015-23-07T00:00:00Z")));//07/23/2015T00:00:00Z
您可以使用SimpleDateFormat
執行此操作。
從數據庫中獲取字符串,找到“-”並將其替換為“ \\”,然后將String解析為Date。 實際上, SimpleDateFormat
會接受"MM-dd-yyyy'T'HH:mm:ss.SSS'Z'"
類型以及"MM/dd/yyyy'T'HH:mm:ss.SSS'Z'"
和您可以對此進行一些計算。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.