"dd-MM-yyyy hh:mm:ss.SSSSS"の形式でタイムスタンプ値を取得しています。例: "2016-05-22 01:02:36.909093"。私は上記の同じフォーマットの2つの値の差を計算する必要があります。誰でもこれを克服するのに役立つだろうか?muleの2つのタイムスタンプ値の違いを調べる方法は?
0
A
答えて
0
これにjavaを使用し、Jodaの日付ライブラリを使用できます。
1
私はMuleについてはわかりませんが、Java側では簡単です。あなたの入力文字列を想定し
java.time
はT
により途中でそのスペースを交換した後Instant
としてそれを解析し、UTCです。
String input = "2016-05-22 01:02:36.909093".replace(" " , "T");
Instant instant = Instant.parse(input);
Instant now = Instant.now();
Duration duration = Duration.between(instant , now);
あなたは、Java 8でDuration
クラスは尋問のための便利な方法を欠いている、総時間数や合計日数のか
奇妙分などの合計として、その長さのためにDuration
を求めることができます時間や分などの部品。 Java 9では、この不足は "getPart"メソッドによって解決されます。
Duration
クラスは、標準ISO 8601形式の文字列を解析して生成できます。たとえば、1時間半はPT1H30M
です。私たちは、下記、それにチェックするためにグルーヴィーために行く必要が
1
は、あなたが直接dataweaveを使用して期間を生成することができますあなたの
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
import java.util.Iterator;
import java.util.Set;
import java.util.Date;
import java.text.SimpleDateFormat;
format = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss");
if(flowVars.lastRunDateTime==null||flowVars.lastRunDateTime=='0')
flowVars.lastRunDateTime=flowVars.currentRunDateTime;
log.info("last run date time"+flowVars.lastRunDateTime);
log.info("current time"+flowVars.currentRunDateTime);
date1=flowVars.lastRunDateTime;
date2=flowVars.currentRunDateTime;
d1 = null;
d2 = null;
d3 = null;
d1 = format.parse(date1);
d2 = format.parse(date2);
diff=d2.getTime()-d1.getTime();
t=diff/60000;
log.info(t + " total Minutes ");
if(t>30)
{
log.info("initial Time"+d1);
calendar = Calendar.getInstance();
calendar.setTime(d1);
calendar.add(Calendar.MINUTE, ${time.gap});
d3= calendar.getTime();
log.info("Final Time"+d3);
flowVars.lastRunDateTime=format.format(d1);
flowVars.currentRunDateTime=format.format(d3);
log.info("last run date time"+flowVars.lastRunDateTime);
log.info("current time"+flowVars.currentRunDateTime);
}
flowVars.put('IM_START_DATE', flowVars.lastRunDateTime.substring(0,10));
flowVars.put('IM_START_TIME' , flowVars.lastRunDateTime.substring(10,16) + '01');
flowVars.put('IM_END_DATE' , flowVars.currentRunDateTime.substring(0,10));
flowVars.put('IM_END_TIME' , flowVars.currentRunDateTime.substring(10,16) +'00');
1
を助けることができるコードです。あなたのペイロードであった場合:明らかに
{
"period": "PT25H11M11.111111S"
}
あなたはその後、別のフォーマットにリファクタリングすることができます
%dw 1.0
%output application/json
%type fdate = :localdatetime {format: "dd-MM-yyyy HH:mm:ss.SSSSSS"}
---
{
period:
payload.date1 as :fdate - payload.date2 as :fdate
}
出力として次のようになります。
{
"date1":"21-07-2016 10:00:00.000000",
"date2":"22-07-2016 11:11:11.111111"
}
次に、このdataweaveはあなたの時間を与えますまたは出力ターゲット。
関連する問題
- 1. 2つのタイムスタンプの間の日と分を調べる方法
- 2. 2つの画像のメトリクス値を調べる方法は?
- 3. Pythonでリストを含む2つのリストの違いを調べる方法は?
- 4. 2つのLinuxタイムスタンプの違いを取得する方法
- 5. 2つの値を調べる
- 6. 2つのJavaソースコード文字列の違いを調べる
- 7. j2meの現在の日付タイムスタンプを調べる方法は?
- 8. 2つのUNIXタイムスタンプの違いを数分で見つける方法PHP
- 9. Codeignitor:2つのタイムスタンプの違い。
- 10. JQueryオブジェクトのコレクション(配列)の違いを調べる方法は?
- 11. リスト間の違いを調べる方法は?
- 12. VBの2 "HH:mm:ss.fff"値の違いを調べたいと思っています
- 13. 2つのタイムスタンプの間のすべてのヌル値のElasticsearch DSL
- 14. ほぼ同じ2枚の写真の違いを調べる
- 15. ツリー内の2つのノード間のパスの長さを調べる方法は?
- 16. 週2日の間の日数を調べる方法は?
- 17. Pythonで配列内の値を比較する方法 - 2つの値が同じかどうか調べる
- 18. 文字の違いを調べるpython
- 19. 2つのダブルスがほぼ等しいかどうかを調べる方法
- 20. は、私は1つのテーブルに2つのタイムスタンプを持つ2つのタイムスタンプ
- 21. ループを使用して2つのリストの相違点を調べる
- 22. テーブル内の各列の最大値を調べる方法は?
- 23. SSRS 2008レポートのMaxHttpCollectionKeysの値を調べる方法は?
- 24. マッピングテーブルの値の範囲を調べる方法は?
- 25. UnderscoreJS:異なるタイプの要素を持つ2つの配列の違いを調べる
- 26. 2つのDataFramesの違いを取得する方法は?
- 27. powershellで最大値を持つ変数の名前を調べる方法は?
- 28. どのように2つの画像の違いを見つけ、違いを強調表示するには?
- 29. 2タイムスタンプの相違点
- 30. 日の2つの日付の違いを調べるにはどうすればよいですか?