簡體   English   中英

如何將字符串更改為日期格式

[英]How change String to Date format

我有這個字符串:2018-09-22 10:17:24.772000我想將其轉換為Date:

 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS");

    String sdate = "2018-09-22 10:17:24.772000";
    Date dateFrom = simpleDateFormat.parse(sdate);

但它顯示:2018年9月22日星期六10:17:24 GMT + 03:30

這是您應該做的,您正在打印日期對象本身,應該打印其格式。

我將為代碼提供舊的日期api和新的本地日期api:

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS");

    String sdate = "2018-09-22 10:17:24.772000";
    Date dateFrom = simpleDateFormat.parse(sdate);

    System.out.println(dateFrom); // this is what you do
    System.out.println(simpleDateFormat.format(dateFrom)); // this is what you should do

    // below is from new java.time package

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS");
    System.out.println(LocalDateTime.parse(sdate, formatter).format(formatter));

輸出是:

Sat Sep 22 10:30:16 EET 2018
2018-09-22 10:30:16.000000

2018-09-22 10:17:24.772000

在我看來,您已將其轉換為日期。 您想要的結果是什么? 我懷疑您要執行的操作是創建另一個顯示您期望格式的簡單日期格式,然后使用simpledateformat2.format(dateFrom)

我還應根據過去的經驗指出,您應該將區域設置添加到簡單的日期格式中,否則具有不同語言設置的設備可能無法執行此代碼

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS", Locale.US);

希望這個能對您有所幫助

public class Utils {

    public static void main(String[] args) {

        String mytime="2018-09-22 10:17:24.772000";
        SimpleDateFormat dateFormat = new SimpleDateFormat(
                "yyyy-MM-dd HH:mm:ss.SSSSSS");

        Date myDate = null;
        try {
            myDate = dateFormat.parse(mytime);

        } catch (ParseException e) {
            e.printStackTrace();
        }

        SimpleDateFormat timeFormat = new SimpleDateFormat("yyyy-MM-dd");
        String finalDate = timeFormat.format(myDate);

        System.out.println(finalDate);
    }
}

暫無
暫無

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

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