私はSQLタイムスタンプ文字列を持っています。 g。Java:Datetime to Dateオブジェクト
String timestamp = 2016-12-11 14:26:35
私は今日日との違いを取得したい、と私はこれを行うに考える
11.12.206 14:26:35
形式の文字列は、私は、オブジェクトのミリ秒を取得して解析する必要がそれらを日付/カレンダーオブジェクトに追加しますか?
これを行うにはどうすればいいですか?
私はSQLタイムスタンプ文字列を持っています。 g。Java:Datetime to Dateオブジェクト
String timestamp = 2016-12-11 14:26:35
私は今日日との違いを取得したい、と私はこれを行うに考える
11.12.206 14:26:35
形式の文字列は、私は、オブジェクトのミリ秒を取得して解析する必要がそれらを日付/カレンダーオブジェクトに追加しますか?
これを行うにはどうすればいいですか?
あなたの質問を理解したら、SQLタイムスタンプをオブジェクトデータに変換するだけで済みます。それはSimpleDateFormatで行うことができます。
あなたはジョダ、時間とともにeasilly 2つの日付の間の差を作ることができ、その後ここhttps://www.mkyong.com/java/how-to-convert-string-to-date-java/
参照してください。
乾杯
これらの問題は、スタックオーバーフローに多く回、既に議論されています。あなたのものは他の多くの質問と重複しています。したがって、詳細を検索してください。下に表示されているクラス名と、elapsed
などの単語を検索します。
ここに簡単な答えがあります。
T
と真ん中にスペースを置き換えることにより、SQL形式から標準ISO 8601形式に入力文字列を変換します。
String input = "2016-12-11 14:26:35".replace(" " , "T");
この文字列として
LocalDateTime
として
LocalDateTime
解析は、任意の時間帯の表示またはオフセットから-UTCを欠いています。
LocalDateTime ldt = LocalDateTime.parse(input);
ZonedDateTime
この文字列の後ろの意味するものとして意図されたタイムゾーンを適用します。オークランド、パリ、モントリオの午後に2つの意味がありましたか?
ZoneId z = ZoneId.of("America/Montreal");
ZonedDateTime zdtThen = ldt.atZone(z);
現在の時刻を取得します。繰り返しますが、タイムゾーンは非常に重要です。無視されたり、離れたくない。
ZonedDateTime zdtNow = ZonedDateTime.now(z);
「差をつける」に関しては、その意味を説明しません。
時間帯を1日として表現する場合は、Period
を使用してください。
Period p = Period.between(zdtThen.toLocalDate() , zdtNow.toLocalDate());
時間 - 分 - 秒を経過させる場合は、Duration
を使用します。
Duration d = Duration.between(zdtThen , zdtNow);
、時間内の点の対として追跡ThreeTen-Extraライブラリを取得し、Interval
クラスを使用します。
Interval interval = Interval.of(zdtThen.toInstant() , zdtNow.toInstant());
Java 8を使用していますか?最高の答えはこれに依存するかもしれません。 Java 1.7では、特に時間間隔を求めたい場合に、より複雑な時間計算にJoda Timeを使用する傾向があります。 Java 8には組み込みのオプションがあります。たぶんhttp://stackoverflow.com/questions/1555262/calculating-the-difference-between-two-java-date-instances –
@DanArmstrongはい一見することができます。 Timestamp文字列からDateオブジェクトを取得するにはどうすればよいですか? – writzlpfrimpft
「タイムゾーンなしの2番目の解決例の例」については、http://stackoverflow.com/questions/1071800/how-to-use-joda-time-with-java-sql-timestampを参照してください。 「DateTimeFormat.forPattern」があり、必要な場所に移動できます。 –