在我的应用程序中,我使用 SimpleDateFormat
将 Date 对象转换为字符串。但是有时候当我一个一个地改变时区来测试我输入的日期是否和转换成字符串的日期相同时,我发现它显示的是不同的日期。例如,假设我的 Date 对象中有 Thu Mar 15 00:00:00 GMT+08:00 2012
,现在当我使用 SimpleDateFormat 将它转换为字符串时它工作正常,但是当我更改一个一个地检查时区并检查转换为字符串的日期是否与存储在 Date 对象中的日期相同然后在某些情况下它显示为 14-Mar-2012
而不是显示 15-Mar -2012
。为什么会这样?谁能建议我如何解决这个问题?
我用过的代码:
SimpleDateFormat m_sdFormatter = new SimpleDateFormat("dd-MMM-yyyy");
String selected_date = m_sdFormatter.format(btnSelectedDt.getTime());
最佳答案
试试这个,希望它能帮到你..
private String getDate(long timeStamp) {
DateFormat objFormatter = new SimpleDateFormat("dd-MM-yyyy");
objFormatter.setTimeZone(TimeZone.getDefault());
Calendar objCalendar = Calendar.getInstance(TimeZone.getDefault());
objCalendar.setTimeInMillis(timeStamp * 1000);
String result = objFormatter.format(objCalendar.getTime());
objCalendar.clear();
return result;
}
关于java - SimpleDateFormat 在将日期转换为字符串时更改日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9782408/