java - SimpleDateFormat 在将日期转换为字符串时更改日期

标签 java android date

在我的应用程序中,我使用 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/

相关文章:

java - 双哈希常数 5?

java - Maven 在创建 war 文件时不会将空目录复制到 webapps 文件夹

带有 WebView 的 Android GridView 在 OnItemClick 事件中不起作用

php - 日期过滤在 mysql、php 中不起作用

java - 验证日期并指定java中日期的格式

java - 异常 : javax. resource.spi.ResourceAdapterInternalException:意外错误

java - SimpleDateFormat 和 android.text.format.DateFormat 有什么区别?

android - 从facebook android SDK获取相册ID?

android - Android 上的 JOGL 与 OpenGL ES API。优点缺点

javascript - 如何在 javascript 中使用 getHours() (在本例中)?