2016-09-19 9 views
-4

次のプログラムコードは、フォーマット方法の例を示しています。クラスjava.text.MessageFormatに基づく文字列と数値の両方説明クラスを参照して、日付書式rrrr-mm-ddの方法を調整します。一般的にJavaでフォーマットする結果

import java.text.MessageFormat; 
import java.util.Date; 



public class FormattingResults { 

public static void main(String[] args){ 

String s; 

Date now = new Date(); 

String place = "Kraków"; 

int mile = 1852; 

double tax = 0.22; 
double price = 31560.76; 

s = MessageFormat.format("{0}, {1,date,full}, time. {1,time,short}", 
place, now); 
System.out.println(s); 

s = MessageFormat.format("{0}kB to {1}B", 256,256*1024); 
System.out.println(s); 

s = MessageFormat.format("{0} x {0} x {0} = {1}", 7, 7*7*7); 
System.out.println(s); 

s = MessageFormat.format("{0,number,currency} + tax({1,number,percent})", 
price, tax); 

System.out.println(s); 

s = MessageFormat.format("{0} {1} it's approximately {2}m", 1, 
"nautical mile", mile); 
System.out.println(s); 
} 
} 

、私は、このコードを理解していない誰かが、例えば、私は非常に簡単な作業を解決できます:私は、Oracleのマニュアルを読んで

"("{0}, {1,date,full}, time. {1,time,short}", 

これはコードがありますしかし、うそはどのように動作するのか分からない。私はあなたのプログラムを実行したとき

+0

[誰かが私の質問に回答したらどうすればよいですか?](http://stackoverflow.com/help/someone-answers)を確認してください。ありがとう。 @ D1l4x –

答えて

0

MessageFormatは現在のロケールを使用して日付をフォーマットします。

この形式を変更したい場合は、FormatStyleパラメーター(3番目のパラメーター)を使用して再生する必要があります。

サポートされている値は、実際にはshort、medium、long、およびの完全なです。または、カスタムpaternを使用することもできます。

MessageFormat.format("{0}, {1,date,yyyy-mm-dd}, time. {1,time,medium}", place, now); 
--> Kraków, 2016-04-19, time. 16:04:44 

MessageFormat.format("{0}, {1,date,mm-dd-yyyy}, time. {1,time,medium}", place, now); 
--> Kraków, 06-19-2016, time. 16:06:39 
+0

ありがとうくらいたくさん:) – D1l4x

0

、その行が印刷された:

Kraków, Monday, September 19, 2016, time. 3:52 PM 

次に、私はデンマークに自分のコンピュータの言語を変更して、再度実行しました。私が得たこの時間は:それは英語だったの前にしながら、

Kraków, 19. september 2016, time. 15:54 

は別に、2分が経過したから、あなたは、日付と時刻が今デンマークの言語と形式で印刷されていることがわかります。これはMessageFormat.format()の機能です。コンピュータの地域設定を見つけて、それを入力に適用します。

+0

ありがとうたくさん:) – D1l4x

関連する問題