2016-03-27 12 views
0

をタイプロング結果を変換するとき、私はテキストボックスに入力された時間を検証するために、以下の回答を使用しています:は、GWTは時間を検証し、テキストボックスに入力された - エラーを24時間形式に

Parsing user time input in Java/GWT

これはロングでミリ秒を返します。フォーマット。だから私は24時間形式に変換したい。私も試してみました

[ERROR] Errors in 'file:/C:/Users/Glyndwr/workspace/AwardTracker_N/src/org/AwardTracker/client/HikeDetailsView.java' 
     [ERROR] Line 387: The method format(String, long, long, long) is undefined for the type String 

::私は、コンパイル時に

java convert milliseconds to time format

は、しかし、私は次のエラーを取得する:に基づいて

long startTime = parseTime(textBoxStartTime.getText()); 
long second = (startTime/1000) % 60; 
long minute = (startTime/(1000 * 60)) % 60; 
long hour = (startTime/(1000 * 60 * 60)) % 24; 
String time = String.format("%02d:%02d:%02d", hour, minute, second); 

:だから私はこの提案を使用

String startTimeString = DateTimeFormat.getFormat("HH:mm").format(startTime); 
Thee method format(Date) in the type DateTimeFormat is not applicable for the arguments (long) 

答えて

0

それは次のようになります:エラーが発生します

String startTimeString = DateTimeFormat.getFormat("HH:mm").format(new Date(startTime)); 

タイムゾーンが重要な場合は、あなたが日付に加えてformat方法にタイムゾーンを渡す必要があります。

+0

こんにちはアンドレイさん、ありがとうございました。これはほとんど役に立ちます。ただし、すべての時間は11時間先です(たとえば、02:00と入力した場合、返されるミリ秒は7200000(正解)です(02:00になるはずですが、13:00が返されます)。タイムゾーンは私にとって重要ではありません。私が午前2時に入力すると02:00が返されます。 – Glyn

0

次のコードは動作します:

long startTime = parseTime(textBoxStartTime.getText()); 
int i = (int) startTime; 
int minute = (i/(1000 * 60)) % 60; 
String formattedMinute = NumberFormat.getFormat("00").format(minute); 
int hour = (i/(1000 * 60 * 60)) % 24; 
String formattedHour = NumberFormat.getFormat("00").format(hour); 
String time = null; 
time = formattedHour + ":" + formattedMinute; 
textBoxStartTime.setText(time); 
1

GWTはjava.lang.Stringで内のすべてのメソッドをエミュレートしません。 GWTではpublic static String format(String format, Object... args)というメソッドを使用することはできません。

代わりに次のコードを使用できます。

StringBuilder sb=new StringBuilder(); 
sb.append(hour).append(":").append(minute).append(":").append(second); 
String time =sb.toString(); 
関連する問題