Я получаю значение метки времени в формате «dd-MM-yyyy hh: mm: ss.SSSSSS», например: «2016-05-22 01: 02: 36.909093». Мне нужно рассчитать разницу между двумя значениями того же формата, о которых говорилось выше. Может ли кто-нибудь помочь преодолеть это.Как найти разницу между двумя значениями времени в муле?
ответ
Вы можете использовать java для этого и использовать библиотеку дат Joda.
Я не знаю о Муле, но на стороне Java это легко.
java.time
Если предположить, что входной строки в UTC, разобрать его, как Instant
после замены, что пространство в середине по T
.
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);
Вы можете задать Duration
для его длины, как общее количество часов, или в общей сложности дней или в общей сложности минут и т.д.
Как ни странно, в Java 8, Duration
класса отсутствуют удобные методы допроса таких как часы или минуты. В Java 9 этот недостаток исправляется методами getPart.
Класс Duration
может анализировать и генерировать строки в стандартном формате ISO 8601. Например, полтора часа - PT1H30M
.
Нам нужно пойти на заводной, чтобы проверить с этим, ниже код, который может помочь вам
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');
Вы можете создать период с использованием dataweave непосредственно. Если полезная нагрузка была:
{
"date1":"21-07-2016 10:00:00.000000",
"date2":"22-07-2016 11:11:11.111111"
}
Тогда это dataweave дает свой период:
%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
}
Какой будет выглядеть так, как выход:
{
"period": "PT25H11M11.111111S"
}
Очевидно, что вы можете реорганизовать в другой формат или выходной цели.
- 1. поиска между двумя значениями времени
- 2. Как рассчитать разницу между двумя значениями java.sql.Time?
- 3. Получить разницу между двумя значениями
- 4. Как рассчитать разницу между двумя значениями
- 5. Как найти разницу между двумя значениями arraylist в java?
- 6. Как найти разницу между двумя значениями в C#?
- 7. как вычислить разницу между двумя значениями
- 8. Рассчитать разницу между двумя значениями в объединении
- 9. найти разницу между двумя значениями в одном столбце в MySQL
- 10. Рассчитать разницу в часах между двумя значениями времени даты
- 11. Найти разницу между двумя сигналами
- 12. Как найти разницу между двумя метками времени в java?
- 13. Как найти разницу во времени между двумя моментами в javascript
- 14. Как найти разницу во времени между двумя моментами в C#
- 15. Проверить разницу в секундах между двумя значениями
- 16. Попытка найти разницу между двумя значениями столбца в GridView
- 17. найти разницу между двумя значениями даты в базе данных Sybase
- 18. Разница между двумя значениями времени в PHP
- 19. Рассчитать разницу во времени между двумя значениями javascript
- 20. Excel: Вычислить разницу между двумя значениями
- 21. Как найти разницу между двумя временными интервалами
- 22. Как найти разницу между двумя moment.unix()
- 23. Найти разницу между двумя объектами
- 24. Найти разницу между двумя массивами
- 25. Найти разницу между двумя температурами
- 26. Найти разницу между двумя файлами
- 27. Как найти разницу во времени между двумя датами?
- 28. найти разницу между двумя словарями
- 29. Как найти разницу во времени между двумя временными метками?
- 30. Найти разницу между двумя объектами в C#