2

私はこのコードを持っています。そして、string 「horaTarefaHH:MM」int 「hour=HH」int 「minute=MM」に変換する必要があります

「dateTarefaDD/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();    
4

3 に答える 3

7

整数を解析するだけでなく、dateformatterを使用することをお勧めします。このようにして、時刻と日付がどのように見えるかをより細かく制御できます(1桁の数字は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のドキュメントを参照してください。

アプリケーションを本当に国際的にしたい場合は、例で行ったように、日付だけでなくカレンダーの使用も検討する必要があります。

于 2013-01-16T13:33:24.063 に答える
4

時間/分などの位置がわかっていて、それが常に同じである場合は、で取得し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));
于 2013-01-16T13:09:04.347 に答える
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));
    }
}
于 2017-09-01T12:02:21.190 に答える