2017-11-09 23 views
0

文字列からの現在の時間と時刻の差(分)を計算したいと考えています。文字列(hh:mm)を現在の日付の日付に変換する方法

私はこのような文字列(SQLiteデータベースから)持っている:

SimpleDateFormat dateFormat = new SimpleDateFormat(
           "yyyy-MM-dd HH:mm:ss"); 
oldDate = dateFormat.parse(time1); 
:日付に

Date currentDate = new Date() 
    long test = currentData.getTime(); 

解析文字列:私は、現在の日付を取得しています

String time1= "22:50"; 

次に差異:

diff = test - oldDate.getTime(); 
    long seconds = diff/1000; 
    long minutes = seconds/60; 

しかし、主な問題は、現在のデータ情報が不足していることに起因しています(私は時間が足りません)。 私はしたいと思う:現在のデータ+文字列からの時間とそれを現在の日付と時間と比較します。

+1

「yyyy-MM-dd」+「time1 +」:ss「 '」の形式でデータベースからの時刻を含む文字列を基本的に構築し、それを' SimpleDateFormat'として解析する必要があります。次に、それを現在の日付/時刻と比較することができます。 – WOUNDEDStevenJones

答えて

1

Java 8時間を使用して、時刻をLocalTimeに解析し、それを今日の日付のLocalDateに適用し、結果を必要に応じてフォーマットします。要するに

:あなたのAndroidはまだJavaの8を持っていない場合

// returns "2017-11-09 22:50:00" 
LocalDate.now().atTime(LocalTime.parse("22:50")) 
     .format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) 

ThreeTen Android Backportを使用しています。

+0

私はそれを試みましたが、gradle insertとAndroidThreeTen.init(this); OnCreateにまだ残っています:呼び出しにAPIレベル26が必要です。 – needtobe

+0

'LocalTime.now(desiredZoneId)'と 'ChronoUnit.MINUTES.between(timeFromDb、timeNow)'を使用する方が簡単でしょうか?正確な要件に応じて、もちろん。 –

関連する問題