如何使用GWT将日期时间字符串转换为日期?

2022-09-03 04:54:42

在 mysql 中,我有一个 datetime 类型的字段time_entered(示例数据: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。因此,如果只有一种方法可以将日期从字符串转换为日期类型,它可能会起作用。我尝试了类型转换,但没有工作。


答案 1

您应该能够只使用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");

答案 2

嗨,有两种选择。

第一个是因为它已经是一个字符串,你可以使用正则表达式来修改格式。

第二种是使用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;
    }
}