以下程序代码显示了如何格式化的示例;字符串为和基于类java.text.MessageFormat
的数值。请参阅说明类,然后调整日期格式rrrr-mm-dd
的方式。
这是代码:
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);
}
}
一般来说,我不理解这段代码,有人可以帮我解决一个非常简单的任务,例如:
"("{0}, {1,date,full}, time. {1,time,short}",
我阅读了oracle文档,但是sill不知道它是如何工作的。
答案 0 :(得分:0)
当我运行你的程序时,打印出该行:
Kraków, Monday, September 19, 2016, time. 3:52 PM
接下来,我将计算机的语言改为丹麦语并再次运行。这次我得到了:
Kraków, 19. september 2016, time. 15:54
除了两分钟过后,您会注意到日期和时间现在用丹麦语和格式打印,而在此之前是英语。这就是MessageFormat.format()的作用:找到计算机的区域设置并将它们应用于输入。
答案 1 :(得分:0)
MessageFormat使用当前的Locale格式化日期。
现在,如果你想改变这种格式,你必须使用FormatStyle参数(第三个);
支持的值实际上是短,中,长,和完整远日期。或者您可以使用自定义模式。
!Collections.disjoint(list1, list2);