我想格式化一个包含多个日期/时间模式的字符串。例如:
'Starting on' EEEE 'at' h:mm a 'and ending on' MMM d
在这里,我尝试使用相同格式字符串中的两个日期,一个开始日期和一个结束日期。我不想把它分成两个字符串,因为句子的顺序和结构在其他语言中可能不同,我不想在我的代码中加入任何假设。据我所知,这不能用 SimpleDateFormat 完成,因为 format() 方法只接受一个日期对象。
我想格式化一个包含多个日期/时间模式的字符串。例如:
'Starting on' EEEE 'at' h:mm a 'and ending on' MMM d
在这里,我尝试使用相同格式字符串中的两个日期,一个开始日期和一个结束日期。我不想把它分成两个字符串,因为句子的顺序和结构在其他语言中可能不同,我不想在我的代码中加入任何假设。据我所知,这不能用 SimpleDateFormat 完成,因为 format() 方法只接受一个日期对象。
您可以使用java.text.MessageFormat来提供所需的数据格式。
String result = MessageFormat.format(
"At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.",
arguments);
请参阅http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#dt,例如:
Date today = new Date();
Date yesterday = new Date();
yesterday.setTime(today.getTime() - (1000*60*60*24) );
System.out.printf( "Yesterday was: %ta, today is: %ta%n ", yesterday, today );
输出
Yesterday was: Thu, today is: Fri