如何将“String HH:MM”转换为“int hour HH”和“int minute MM”

时间:2013-01-16 12:57:34

标签: java android datetime

我有这个代码。我需要将string " horaTarefa HH:MM" 转换为int "小时= HH" int "分钟= MM"

我想我可以用" dateTarefa DD / MM / YYYY" 做同样的事情吗?

SQLiteDatabase db;
db = openOrCreateDatabase("AgendadorTarefas.db",SQLiteDatabase.CREATE_IF_NECESSARY,null); { }

Cursor c = db.query("Tarefa", new String[] {
              "codTarefa", "dateTarefa", "horaTarefa", "textoTarefa"}, 
            null, null, null, null, null);

c.moveToFirst();

final ArrayList<String> result = new ArrayList<String>();

while(c.moveToNext())
{ 
    String Date = c.getString(1);
    String Hora = c.getString(2);
    String Texto = c.getString(3);
    result.add(Data + " às " + Hora + " \n" + Texto);
}

hour = Calendar.HOUR;
minute = Calendar.MINUTE;

c.close();    

3 个答案:

答案 0 :(得分:6)

最好使用dateformatter而不是仅解析整数。通过这种方式,您可以更好地控制时间和日期的样子(一位数字写为 05 5 ?时间是12小时还是24小时 - 小时格式?...)

解析时间的简单代码可能如下所示:

try
{
    SimpleDateFormat format = new SimpleDateFormat("H:m");
    Date date = format.parse("15:34");
    int hours = date.getHours(); 
    int min   = date.getMinutes();
}
catch (ParseException e)
{
    // parsing failed
}

有关格式参数的参考,请参阅SimpleDateFormat Documentation

如果你真的想让你的应用程序变得国际化,那么你也应该考虑使用Calendar而不是像我在示例中那样使用Date。

答案 1 :(得分:3)

如果您知道小时/分钟/等的位置且始终相同,则可以使用substring获取该位置,然后将其转换为Integer.parseInt

的数字
String Hora = "12:34";
int hour = Integer.parseInt(Hora.substring(0, 2));
int minute = Integer.parseInt(Hora.substring(3));

String Date = "12/34/5678";
int day = Integer.parseInt(Date.substring(0, 2));
int month = Integer.parseInt(Date.substring(3, 5));
int year = Integer.parseInt(Date.substring(6));

答案 2 :(得分:1)

不推荐使用date.getHours(),因此我选择使用日历和此问题的最佳答案来更新此问题的答案。

public static int getHour(String hourString) {
    SimpleDateFormat format = new SimpleDateFormat("HH:mm", Locale.US);
    try {
        Date date = format.parse(hourString);
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.HOUR_OF_DAY);
    } catch (ParseException e) {
        return Integer.parseInt(hourString.substring(0, 2));
    }
}