如何将Android日期转换为Unix TimeStamp?

时间:2011-11-28 05:57:57

标签: android datetime

我在

中有一个日期字符串
  

DD-MM-YYYY(28-11-2011)

我想将它转换为linux时间戳,没有时间或时间为零。

我是通过

来做的
String dateString="13-09-2011";
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
              Date date = null;
              try {
                    date = (Date)formatter.parse(dateString);
                    Log.v(Constants.LOGGING_TAG, "Date is " + dateString);
                } catch (ParseException e) {
                    e.printStackTrace();
                }
                Log.v(Constants.LOGGING_TAG, "Today is " + date.getTime());

但这并没有给出理想的结果。任何机构都有任何想法来解决这个问题。

1 个答案:

答案 0 :(得分:3)

目前尚不清楚问题是什么,因为你没有告诉我们你的预期和你得到了什么,但我怀疑有两个潜在的问题:

  • 您尚未指定时区,因此格式化程序将解析系统本地时区中的值。如果您只想要一个日期,您应该首先将格式化程序设置为UTC:

    formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
    
  • 如果你想要一个Unix时间值(以秒为单位),你需要将Date中的值除以1000,因为java.util.Date以毫秒为单位表示:

    long seconds = date.getTime() / 1000;
    

我还建议使用Joda Time代替内置类进行日期/时间操作。