我在
中有一个日期字符串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());
但这并没有给出理想的结果。任何机构都有任何想法来解决这个问题。
答案 0 :(得分:3)
目前尚不清楚问题是什么,因为你没有告诉我们你的预期和你得到了什么,但我怀疑有两个潜在的问题:
您尚未指定时区,因此格式化程序将解析系统本地时区中的值。如果您只想要一个日期,您应该首先将格式化程序设置为UTC:
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
如果你想要一个Unix时间值(以秒为单位),你需要将Date
中的值除以1000,因为java.util.Date
以毫秒为单位表示:
long seconds = date.getTime() / 1000;
我还建议使用Joda Time代替内置类进行日期/时间操作。