在GWT中将时间值格式化为HH:mm:ss.SS

时间:2013-03-11 05:17:44

标签: java date gwt datetime

我的时间格式如下

 public static final String TIME_FORMAT = "HH:mm:ss.SS";
 edition.getEditionDate().format(TIME_FORMAT);

输出如下:

  

15:02:08.293

我应该如何获得以下输出。我不想使用Joda Time。我既不想使用substring()方法,因为它不是一种有效的方法。

  

15:02:08.29

Gwt客户端代码不支持使用SimpleDateFormat。Methods supported by GWT client side code

4 个答案:

答案 0 :(得分:2)

SimpleDateFormat dateFormat = new SimpleDateFormat ("HH:MM:ss.");
DecimalFormat fractionalformat = new DecimalFormat ("00");

Date date = new Date ();

String str = dateFormat.format (date) + fractionalformat.format (date.getTime () % 1000L / 10L);

System.out.println (str);

答案 1 :(得分:1)

引用SimpleDateFormat javadoc(和变体):“对于格式化,模式字母的数量是最小位数,较短的数字是零填充到此数量。”

因此,即使指定1或2位数的毫秒数,对于大于或等于100(大多数...)的值,您将得到3位数。

你需要自己动手,看起来米哈伊尔已经证明了这一点。

答案 2 :(得分:1)

试试这个

String dateString = DateTimeFormat.getFormat("HH:mm:ss.SS").format(new Date());
System.out.println(dateString);

DateTimeFormat

的API

答案 3 :(得分:1)

使用GWT 2.5,这会稍微改变 -

  1. 如果您希望统一处理服务器端和客户端,请使用 DateTimeFormat @ Shared

  2. 如果您希望仅在客户端处理此问题,请使用DateTimeFormat @ Client

  3. 代码仍然是 -

    String dateString = DateTimeFormat.getFormat("HH:mm:ss.SS").format(new Date());