1

我有时间戳字符串:"1989-01-01 00:00:00"我需要将其转换为本地日期格式。

我执行:

SimpleDateFormat TIMESTAMPFORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
DateFormat.getDateFormat(getContext()).format(TIMESTAMPFORMAT.parse("1989-01-01 00:00:00"));

并且 getDateFormat 返回31.12.1988

为什么?

我怎样才能收到01.01.1989???

4

2 回答 2

2

这可能与所涉及的时区有关。我强烈怀疑您正在使用与您用于解析的时区不同的时区进行格式化,并且该值基本上会在午夜之前到达。如果您可以在两者上使用相同的时区,那么它可能会起作用。

如果可能的话,我鼓励你改用Joda Time - 你真的想要一个LocalDate.

于 2012-10-12T13:13:15.453 回答
2

为了在格式化时跳过时区,我建议您将其设置为默认值,如下所示:

SimpleDateFormat TIMESTAMPFORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
TIMESTAMPFORMAT.setTimeZone(TimeZone.getTimeZone("GMT"));
于 2012-10-12T13:18:34.240 回答