書式整形

Java

  • 型によって幾つか用意されている。
  • 数値型は DecimalFormat など。
NumberFormat NF = new DecimalFormat("¥#,##0.-");
int price = 1280;
String priceStr = NF.format(price);
  • 日付型は SimpleDateFormat など。
DateFormat DF = new SimpleDateFormat("yyyy/MM/dd"); //M大文字は月(1~12)、m小文字は分。二つ並べると0パディング。
Date now = new Date(); //引数無しインスタンス生成直後で現在日付
String nowStr = DF.format(now);
  • 複数複合は MessageFormat 。
MessageFormat MF = new MessageFormat("{0,date,MM/dd} に {1} を {2,number,#,##0} g買った。"); //※あれっ、書式に "," 含みたいときどうするんだろう!?
MF.format(new Object[] { new Date(), "小麦粉", 100 });
  • 逆に、整形された文字列を数値型日付型等に変換したいときは、parse メソッドで行なうことが出来る。
試しに以下のサンプルを実行したところ、
MessageFormat MF = new MessageFormat("{0,date,MM/dd} に {1} を {2,number,#,##0} g買った。");
String MfStr = MF.format(new Object[] { new Date(), "小麦粉", 1000 });
このような結果になりました。
12/02 に 小麦粉 を 1,000g買った。
4つ目の","はパターンとして認識される様です(5つ目以降があると値が0,0,1,0,0gとなります)

解決策にはなりませんが...

MessageFormat MF2 = new MessageFormat("{0,date,MM/dd}に{1}を");
String MfStr2 = MF2.format(new Object[] {new Date(), "メリケン粉"});
NumberFormat NF = new DecimalFormat("000,00,,0");
String NfStr = NF.format(100);
System.out.println(MfStr2+NfStr+"g買った。");

参照

PHP

  • 文字列をフォーマットする sprintf
関数自体より方指定文字のほうが数が多く複雑である。
<?php
$num = 120;
print(sprintf("%dは16進数で0x%Xです", $num, $num).'<br>');
print(sprintf("数値は%+dです",$num).'<br>');
print(sprintf("数値は%'_5dです",$num).'<br>');
print(sprintf("数値は%-7dです",$num).'<br>'); 
$fnum = 32.5687;
print(sprintf("数値は%.3fです",$fnum).'<br>');
?>
  • 整数に整える number_format
$number = 1234.56;
print(number_format($number)); //出力:1,235
  • 適した国のフォーマットを用いる money_format
windowsでは定義されておらず、日本円のフォーマットもない。
$number = 1234.56;
//イタリアの国内フォーマットで小数点以下二桁で表示します
setlocate(LC_MONETARY,'it_IT'); //Eu 1.234,56
  • 指定の形式にフォーマットされた日付を取得 strftime
<?php
print(strftime("%Y / %m / %d %H:%M:%S").'<br>');
print(strftime("%B, %d(%A)").'<br>');
?>

javascript

日付取得にDateオブジェクトを使用
var hiduke = new Date();
document.write("今日は"+hiduke+<br>);
//曜日だけを取る場合は
var week = hiduke.getDay();
var yobi= new Array("日","月","火","水","木","金","土");
document.write(yobi[week]+"曜日");
document.write("日本語で:"+hiduke.toLocaleString());
実行結果:
今日はTue Dec 03 2013 12:55:24 GMT+0900
火曜日
日本語で:2013年12月3日 15:44:35

タグ:

+ タグ編集
  • タグ:
最終更新:2013年12月03日 15:44