ICUDateTime:获取昨天的日期?

时间:2014-01-05 13:20:24

标签: date icu

我试图得到昨天的日期,但我无法弄明白。现在我正在使用%ICUDateTime%yyyy-MM-dd%,它出现在2014-01-05。如何显示2014-01-04?

注意:我不认为这被标记错误,我看到ICU也适用于来自ICU网站的c,c ++和java:http://userguide.icu-project.org/intro

3 个答案:

答案 0 :(得分:1)

昨天 2014-01-04。至少我住的地方。你住在哪里?(修正了问题中的日期)

为什么不使用CalendarJodaTime?使用日历,就像这样:

Calendar c = new GregorianCalendar();
c.add(Calendar.DATE, -1);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String yesterday = format.format(c.getTime());

答案 1 :(得分:0)

ICU4J - 解决方案在结构上非常类似于@MartijnCourteaux发布的JDK内容。只需使用这些类:

  • com.ibm.icu.util.GregorianCalendar
  • com.ibm.icu.text.SimpleDateFormat

结构上等同意味着与标准JDK中的外观相同(只有导入不同):

GregorianCalendar c = new GregorianCalendar();
c.add(Calendar.DATE, -1);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String yesterday = format.format(c.getTime());

关于为什么不使用JDK或JodaTime的评论/问题,我仍然看到一些关于ICU4J的论据,即它具有更多的国际化能力,例如比JDK和JodaTime更多的日历实现。无论如何,如果您需要ICU4J的额外功能或者可以满足标准JDK(在您显示的示例标准JDK就足够了),这取决于您。

答案 2 :(得分:0)

将变量前一天设置为:

%ICUDateTimeMinus%1%Days%d%