簡體   English   中英

在 Java 中將日期從 MM/dd 更改為 yyyy-MM-dd'T'HH:mm:ss.SSZ

[英]Change date from MM/dd to yyyy-MM-dd'T'HH:mm:ss.SSZ in Java

我有一個格式化為MM/dd的字符串。 我想將其轉換為yyyy-MM-dd'T'HH:mm:ss.SSZ格式的日期。

DateFormat df = new SimpleDateFormat("MM/dd");
String strDate = "06/05";
Date date = new Date();
date = df.parse(strDate);

這使它成為一個日期,但采用原始格式。

System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSZ").format(date));

這將返回正確的月份和日期,但沒有別的。

1970-06-05T00:00:00.00-0400

知道如何讓它返回

CURRENT_YEAR-06-05TCURRENT_TIME

在問題中,日期格式模式表示需要 2 位小數秒。 SimpleDateFormat無法做到這一點。

較新的 Java 8 次 API 可以,無論如何您都應該使用它。

如果您在 Java 6 或 7 上運行,請獲取ThreeTen-Backport庫。

要在默認時區解析MM/dd格式的字符串並獲取包含當前年份和時間的完整時間戳,請使用以下代碼:

String strDate = "06/05";
MonthDay monthDay = MonthDay.parse(strDate, DateTimeFormatter.ofPattern("MM/dd"));
ZonedDateTime date = ZonedDateTime.now().with(monthDay);
System.out.println(date.format(DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss.SSZ")));

樣品 Output

2020-06-05T14:52:48.45-0400

我建議使用java.time package。 你有 go:

var ds = "01/12";
var df = java.time.format.DateTimeFormatter.ofPattern("MM/dd");
var dt = java.time.MonthDay.from(df.parse(ds)).adjustInto(java.time.LocalDateTime.now());

然后你可以將dt轉換為java.util.Date或任何你喜歡的。 或者簡單地使用java.time格式器之一來獲得所需的 output。

對於這么簡單的事情,我建議采用不同的方法,獲取當前時間,然后從原始字符串 THEN 格式設置月份和日期。

String str = "08/09";
        String[] split = str.split("/");

        Calendar calendar = Calendar.getInstance();

        calendar.set(Calendar.MONTH, Integer.parseInt(split[0]));
        calendar.set(Calendar.DAY_OF_MONTH, Integer.parseInt(split[1]));
        System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS").format(calendar.getTime()));

您正在創建只有月份和日期的日期如果要使用當前年份和時間,可以創建日歷 object 並編輯月份和日期

String strDate = "06-05";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-"+strDate+"'T'HH:mm:ss.SSZ");
System.out.println(sdf.format(new Date()));

output:

2020-06-05T23:00:45.306+0400

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM