我有时间戳字符串:"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
???
答案 0 :(得分:2)
这可能与所涉及的时区有关。我强烈怀疑你在解析的时区中的格式,并且值基本上在午夜之前。如果你可以在两者上使用相同的时区,它可能会起作用。
如果可能的话,我建议您使用Joda Time,而不是 - 你真的需要LocalDate
。
答案 1 :(得分:2)
为了在格式化时跳过时区,我建议您将其设置为默认值,如下所示:
SimpleDateFormat TIMESTAMPFORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
TIMESTAMPFORMAT.setTimeZone(TimeZone.getTimeZone("GMT"));