import java.time.Duration;
import java.time.Instant;
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.DurationFormatUtils; @Slf4j
public class TimeHelper { public static final DateTimeFormatter FORMATTER =
DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS[XXX][X]"); public static Instant parseTimeStamp(String timeStamp) {
return OffsetDateTime.parse(timeStamp, FORMATTER).toInstant();
} public static String getDuration(String startTimeStamp, String endTimeStamp) {
String duration = "";
try {
duration =
DurationFormatUtils.formatDurationWords(
Duration.between(parseTimeStamp(startTimeStamp), parseTimeStamp(endTimeStamp))
.toMillis(),
true,
true);
} catch (NullPointerException | DateTimeParseException e) {
log.error(e.getMessage(), e);
}
return duration;
}
}
import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.Optional;
import java.util.Set; private static final DateTimeFormatter VALUATION_TIMESTAMP_PARSER =
DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss[.SSS][xxx][xx][X]"); private Instant getTimeStampAsInstant(String timeStamp) {
return Optional.ofNullable(timeStamp)
.map(VALUATION_TIMESTAMP_PARSER::parse)
.map(Instant::from)
.orElse(null);
}
import com.fasterxml.jackson.annotation.JsonFormat;
import java.time.Instant; @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS[xxx][xx][X]")
private Instant valuationTimeStamp;
private static final DateTimeFormatter VALUATION_TIMESTAMP_PARSER =
DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss[.SSS][xxx][xx][X]");
import java.time.Duration;
import java.time.Instant;
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.DurationFormatUtils; @Slf4j
public class TimeHelper { public static final DateTimeFormatter FORMATTER =
DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS[XXX][X]"); public static Instant parseTimeStamp(String timeStamp) {
return OffsetDateTime.parse(timeStamp, FORMATTER).toInstant();
} public static String getDuration(String startTimeStamp, String endTimeStamp) {
String duration = "";
try {
duration =
DurationFormatUtils.formatDuration(
(Duration.between(parseTimeStamp(startTimeStamp), parseTimeStamp(endTimeStamp))
.toMillis()),
"d'd' HH'h' mm'm' ss's'");
} catch (NullPointerException | DateTimeParseException e) {
log.error(e.getMessage(), e);
}
return duration;
}
}

最新文章

  1. [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法
  2. 继承 原生js 与 $.extend(true,default,opts||{});
  3. MVC3.0学习笔记之元模型元数据ModelMetaData以及模型元数据提供系统
  4. 洛谷P1134 阶乘问题
  5. 也谈谈 Redis 和 Memcached 的区别
  6. fread 和 fwrite 函数用法示例以及注意事项
  7. Android的NDK开发(4)————JNI数据结构之JNINativeMethod
  8. ssh-copy-id password
  9. XCode模拟器屏幕显示内容非常慢
  10. [转] Console命令详解,让调试js代码变得更简单
  11. SpringMVC 返回字符串
  12. jquery的extend和fn.extend
  13. Sql Server数据库使用触发器和sqlbulkcopy大批量数据插入更新
  14. mongoDB身份验证
  15. python之反射和内置函数__str__、__repr__
  16. apache开启重写模式
  17. SpringBoot一站式启动流程源码分析
  18. 如何以SYSTEM用户运行CMD
  19. requests 请求几个接口 出现’您的账户在其它设备使用过,为保障安全,需重新登入才能在本设备使用‘
  20. Django使用Signals监测model字段变化发送通知

热门文章

  1. django-替代为自定义的User model
  2. Cookie API和记录上次来访时间
  3. python logging的输出
  4. JS获取当前时间往后一天的时间
  5. 图形化编程娱乐于教,Kittenblock实例,为背景添加音乐
  6. git clone与git pull区别
  7. 快速排序&基数排序
  8. MongoDB_走一波
  9. GTX 1080显卡出错
  10. 201409-1 相邻数对 Java