有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Android中日期的java帮助

正在寻找从DatePicker小部件获取dat并将其存储在应用程序内的sqlite数据库中的帮助。我有以下代码:

java.util.Date utilDate = null;
            String y = Integer.toString(date.getDayOfMonth()) + "/" + (date.getMonth()+1) + "/" + Integer.toString(date.getYear());
            SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyy");
            utilDate = formatter.parse(y);
            java.sql.Date z = new java.sql.Date(utilDate.getDate());
            x = z.toString();
            Log.v("The date: ", x);
}

其中date是DatePicker小部件。如果我使用logCat输出utilDate变量(即日期的Java版本),它似乎工作正常,并给我一个类似于:Tue Jan 04 00:00:00 GMT 2011的格式,我希望是这样,但使用上面的代码获取日期的sql版本,它总是给我日期1970-01-01。我很确定解决方案很简单,但我就是看不出来


共 (1) 个答案

  1. # 1 楼答案

    这部分:utilDate.getDate()是错误的

    引用Javadoc

    Returns the day of the month represented by this Date object. The value returned is between 1 and 31 representing the day of the month that contains or begins with the instant in time represented by this Date object, as interpreted in the local time zone.

    所以,你得到一个介于1和31之间的数字,你期望一个long代表自1970年1月1日00:00:00.000 GMT以来经过的毫秒数

    使用

    java.sql.Date z = new java.sql.Date(utilDate.getTime());
    

    一切都会好起来的