2013-01-22 60 views
1

我在时间选择器中存储了一段时间,在我的数据库的单独'时间'列中。Android正确的时间格式问题

目前我使用从拾取器:

与插入方法
setTime = (TimePicker) findViewById(R.id.timePicker1); 


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

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

数据库辅助对象接收并存储所选择的时间的方法如下:

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

法在DB辅助类:

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); 

在我的应用程序中,以下输出显示h ow存储日期:

显然这个时间格式不正确。有人能指出我设置这个实际时间格式的正确方向吗?

app

+0

你是否简单地将Time对象传递给TextView? –

+0

@ A - C。我将'timeToSet对象'直接传递给我的数据库帮助类中的一个方法,然后插入它。我会添加该代码 – user1352057

回答

1

虽然吉列尔梅的答案的作品,我会说,你也可以使用Time#format()方法来实现你的时间正确的格式。您将字符串传递给格式为 strftimeformat()方法(例如"%x%X")。

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

这只是一个默认的区域设置特定的表现,你可以将其设置为基本上什么,如果你想有一个一致的时间格式。

+0

非常感谢您的回答。我已经尝试过使用'%x',我已经设置了一个正确的时间格式。我现在唯一的问题是它总是将时间设定为凌晨12:00:00。当你说'传递'一个字符串时,你的意思是把我的时间转换为一个字符串?就在此刻,我将它作为'时间'变量类型传递。 – user1352057

+0

不,我的意思是根据strftime格式将带有%Xs的字符串修改为你想要的。至于为什么它总是说上午12:00:00 - 我不确定。 –

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; 
    } 
+0

感谢您的aswer。不会这个代码给我目前的时间,而不是从我的时间选择器的时间? – user1352057