TimeHelper
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;
}
}
TimeHelper的更多相关文章
- [时间操作] C#TimeHelper时间格式化帮助类 (转载)
点击下载 TimeHelper.rar 主要功能如下 .将时间格式化成 年月日 的形式,如果时间为null,返回当前系统时间 .将时间格式化成 时分秒 的形式,如果时间为null,返回当前系统时间 . ...
- c#关于时间TimeHelper类的总结
using System; namespace DotNet.Utilities{ /// <summary> /// 时间类 /// 1.SecondToMinute( ...
- 从零开始编写自己的C#框架(22)——添加普通列表页面
普通列表页面指的是上一章那种有层次感列表以外的正常列表页面,由于上一章已讲解了正常添加页面的相关操作了,所以部分相关的操作本章节就不再罗嗦重复一次了.大家可以试试先用本章内容中的一些简单介绍,自己使用 ...
- 使用C#把发表的时间改为几年前,几个月,几天前,几小时前,几分钟前,或几秒前
我们在评论中往往会看到多少天前,多少小时前. 实现原理:现在时间-过去时间 得到的时间差来做比较 下面我定义了一个Helper类,大家直接引用即可,参数就是时间差,注意时间差类型是TimeSpan类型 ...
- 如何解决CRUD操作中与业务无关的字段赋值
提高效率一直是个永恒的话题,编程中有一项也是可以提到效率的,那就是专注做一件事情,让其它没有强紧密联系的与之分开.这里分享下我们做CRUD时遇到的常见数据处理场景: 数据库表字段全部设计为非空,即使这 ...
- 使用ImitateLogin模拟登录百度
在之前的文章中,我已经介绍过一个社交网站模拟登录的类库:imitate-login ,这是一个通过c#的HttpWebRequest来模拟网站登录的库,之前实现了微博网页版和微博Wap版:现在,模拟百 ...
- lucene.net 使用过程中的 几个注意事项(含termquery 和QueryParser 的区别)
几个注意事项1.建立索引时 插入的顺序(不设置document和字段的boost) 会影响到 查询结果的默认排序,建议:将最新生成的文章 最后建索引 这样 查询结果首先显示的是 最后插入的数据2.Bo ...
- c# 计算两日期的工作时间间隔(排除非工作日)及计算下一个工作时间点.
一个日期段如工作时间为 8:00 至 17:00 public class TimeHelper { /// <summary> /// 计算时间间隔 /// </summary&g ...
- iOS开发——时间格式类
目前只实现了三个类方法, 第一个获取当前时间,以字符创的形式返回,例如"201606161532" 第二个以当前时间与给定时间的时间差(秒) 第三个以当前时间与给定时间的时间差(分 ...
随机推荐
- 为什么 execute(`echo 中文`) 输出中文源码?
为什么 execute(echo 中文) 输出中文源码? import win.ui; /*DSG{{*/ var winform = win.form(text="管道演示";r ...
- scala通过尾递归解析提取字段信息
一.背景 获取数据中以“|”作为字段间的分隔符,但个别字段中数据也是以“|”作为分隔符.因此,在字段提取时需要保护数据完整性. 二.实现 1.数据以“|”分隔,可以采用递归方式迭代解析.通过尾递归方式 ...
- 新iPhone要推出双卡双待这事是真的吗?
自2007年发布以来,iPhone似乎一直都是"异类"--以自己独特的方式走着一条引领智能手机前进的路!如,在当年遍地按键键盘的年代,iPhone以触摸屏的奇葩姿态引领了新潮流:刚 ...
- dxSkinController1 皮肤使用
unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System ...
- P3370 【模板】字符串哈希 题解
地址:https://www.luogu.org/problem/P3370 求不同字符串的数量 这题用set也可以过,但是hash更高大上嘛. 哈希其实就是将一个字符串映射成一个值,并且要让这些值不 ...
- Fidder IOS抓包
Fiddler-HTTPS配置 手机抓包配置 手机网络配置 打开Safari浏览器输入IP+端口号:192.168.0.14:8888,安装证书 证书信任设置:通用 - 关于本机 - 证书信任设置 - ...
- Linux--shell 计算时间差
参考:https://www.cnblogs.com/leixingzhi7/p/6281675.html starttime=`date +'%Y-%m-%d %H:%M:%S'` #执行程序 en ...
- CentOS7设置阿里镜像教程
阿里镜像官方地址http://mirrors.aliyun.com/ 1.点击官方提供的相应系统的帮助 :2.查看不同版本的系统操作: 为linux系统下载源设置阿里镜像的步骤 : 1. 备份 备份C ...
- @Data与@ConfigurationProperties 简化配置属性数据
参考地址:https://www.cnblogs.com/FraserYu/p/11261916.html 在编写项目代码时,我们要求更灵活的配置,更好的模块化整合.在 Spring Boot 项 ...
- 1. react 基础 简介 及 环境搭建
一.简介 由 Facebook 推出 2013 年 开源 的 函数式编程的 使用人数最多的 前端框架 拥有健全的文档与完善的社区 ( 官网 ) react 16 称为 React Fiber ( 底层 ...