Android正确的时间格式问题

时间:2013-01-22 15:57:22

标签: java android sqlite

我将时间选择器中的时间存储在数据库的单独“时间”列中。

目前我正在使用以下接收和存储选择器中所选时间的方法:

setTime = (TimePicker) findViewById(R.id.timePicker1);


Integer dobHour = setTime.getCurrentHour();
Integer dobMinute = setTime.getCurrentMinute();

Time timeToSet = new Time();
timeToSet.set(0, dobMinute, dobHour);

使用insert方法的数据库助手对象:

DBHandlerApp createApp = new DBHandlerApp(this, null, null);
    createApp.open();
    createApp.createAppointmentEntry(nameToSet, typeToSet, timeToSet, setDate, comToSet, alarmToSet);

DB helper类中的方法:

    public void createAppointmentEntry(String nameApp, String typeApp, Time timeApp, Date dateApp ,String commentApp, Boolean onOrOff) {



        ContentValues cv = new ContentValues();
        cv.put(KEY_NAMEAPP, nameApp);
        cv.put(KEY_TYPEAPP, typeApp);
        cv.put(KEY_TIMEAPP, timeApp.toString());
        cv.put(KEY_DATEAPP, dateApp.toString());
        cv.put(KEY_COMMENTAPP, commentApp);
        cv.put(KEY_ALARM, onOrOff);
        ourDatabase.insert(DATABASE_TABLEAPP, null, cv);

在我的应用中,以下输出显示了日期的存储方式:

显然这种时间格式不正确。有人能指出我将其设置为实际时间格式的正确方向。

app

2 个答案:

答案 0 :(得分:1)

虽然Guilherme的答案有效,但我会说你也可以使用Time#format()方法来正确格式化你的时间。您将字符串传递给format()方法(例如"%x%X")格式化为规范 strftime

例如

cv.put(KEY_TIMEAPP, timeApp.format("%x%X"));

这只是一个默认的特定于语言环境的表示,如果你想要一致的时间格式,你可以将它设置为基本任何东西。

答案 1 :(得分:0)

使用此:

 public static String getDate() {
        SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
        String date = dateFormat.format(new Date(System.currentTimeMillis()));
        return date;
    }