簡體   English   中英

如何使用GWT將日期時間字符串轉換為日期?

[英]How to convert String of datetime to date using GWT?

在mysql中,我有一個time_entered類型為datetime(示例數據:2012-06-20 16:00:47)。 我還有一個方法getTimeEntered(),它返回值為String。 我想使用GWT的DateTimeFormat以2012-06-20格式顯示日期。

這是我的代碼:

String date = aprHeaderDW.getTimeEntered();
DateTimeFormat fmt = DateTimeFormat.getFormat("MM-dd-yyyy");
dateEntered.setText("" + fmt.format(date));

問題是,format方法不接受String參數。 因此,如果只有一種方法可以將日期從String轉換為Date類型,那么它可能會起作用。 我嘗試了類型轉換,但沒有工作。

您應該只能使用DateTimeFormat

Date date = DateTimeFormat.getFormat("yyyy-MM-dd HH:mm:ss").parse("2012-06-20 16:00:47");
String dateString = DateTimeFormat.getFormat("yyyy-MM-dd").format(date);

否則,有一個輕量級的SimpleDateFormat支持這種模式。

Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2012-06-20 16:00:47");

您好有兩種選擇。

第一個是因為它已經是一個字符串,你可以使用正則表達式來修改格式。

第二種是使用SimpleDateFormater,您可以將字符串解析為日期然后再返回。 例如:

public class DateMerge {

    public static void main(String arg[]) 
    {
        String out = dateConvert("2012-06-20 16:00:47");
        System.out.println(out);
    }

    public static String dateConvert (String inDate)
    {
        try {
         DateFormat formatter ; 
         Date date ; 
          formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
          date = (Date)formatter.parse(inDate);
          formatter = new SimpleDateFormat("dd-MM-yyyy");
          String outDate = formatter.format(date);
          return outDate;

          } catch (ParseException e)
          {System.out.println("Exception :"+e);  }  


    return null;
    }
}

你可以這樣使用。

    String date = "2012-06-20 16:00:47";

    SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd");
    String lDate=sf.format(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(date));

    System.out.println(lDate);

輸出:

2012-06-20

經過多次嘗試,我想出了一個基於@Keppil並添加自己代碼的解決方案。

這是Keppil建議的將String datetime轉換為Date類型的解決方案:

Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2012-06-20 16:00:47");

...但我的第二個要求是只顯示2012-06-20這樣的日期。 即使我刪除了HH:mm:ss,它仍然顯示時間,如2012-06-20 00:00:00。

這是我的最終解決方案:

Date date = null;
String d = rs.getString(SQL_CREATION_TIME); // assigns datetime value from mysql

// parse String datetime to Date
try {
date = new SimpleDateFormat("yyyy-MM-dd").parse(d);
System.out.println("time entered: "+  date);
} catch (ParseException e) { e.printStackTrace(); }

// format the Date object then assigns to String
Format formatter;
formatter = new SimpleDateFormat("yyyy-MM-dd");
String s = formatter.format(date);

暫無
暫無

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

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