java中的格式化结果

java中的格式化结果,java,Java,以下程序代码显示了如何格式化的示例;字符串和数值​​基于类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

以下程序代码显示了如何格式化的示例;字符串和数值​​基于类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文档,但不知道它是如何工作的。

当我运行您的程序时,那行打印了:

Kraków, Monday, September 19, 2016, time. 3:52 PM
接下来,我将电脑语言改为丹麦语,然后再次运行。这次我得到了:

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

除了已经过了两分钟外,您会注意到日期和时间现在以丹麦语和格式打印,而之前是英语。这就是MessageFormat.format的作用:查找计算机的区域设置并将其应用于输入。

MessageFormat使用当前区域设置来格式化日期

现在,如果要更改此格式,必须使用FormatStyle参数第三个参数

支持的值实际上是短日期、中日期、长日期和完整日期。或者,您可以使用自定义模式

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
请退房。谢谢。@D1l4x