Joda-Time

计算两个Java日期实例之间的差异

依然范特西╮ 提交于 2020-02-27 03:42:46
我在Scala中使用Java的 java.util.Date 类,并想比较 Date 对象和当前时间。 我知道我可以使用getTime()计算增量: (new java.util.Date()).getTime() - oldDate.getTime() 但是,这只给我留了 long 毫秒。 有没有更简单,更好的方法来获取时间增量? #1楼 简单差异(无lib) /** * Get a diff between two dates * @param date1 the oldest date * @param date2 the newest date * @param timeUnit the unit in which you want the diff * @return the diff value, in the provided unit */ public static long getDateDiff(Date date1, Date date2, TimeUnit timeUnit) { long diffInMillies = date2.getTime() - date1.getTime(); return timeUnit.convert(diffInMillies,TimeUnit.MILLISECONDS); } 然后您可以致电: getDateDiff

@JsonFormat与@DateTimeFormat注解的使用

不想你离开。 提交于 2020-02-26 00:28:53
从数据库获取时间传到前端进行展示的时候,我们有时候可能无法得到一个满意的时间格式的时间日期,在数据库中显示的是正确的时间格式,获取出来却变成了很丑的时间戳,@JsonFormat注解很好的解决了这个问题,我们通过使用@JsonFormat可以很好的解决:后台到前台时间格式保持一致的问题,其次,另一个问题是,我们在使用WEB服务的时,可能会需要用到,传入时间给后台,比如注册新用户需要填入出生日期等,这个时候前台传递给后台的时间格式同样是不一致的,而我们的与之对应的便有了另一个注解,@DataTimeFormat便很好的解决了这个问题,接下来记录一下具体的@JsonFormat与DateTimeFormat的使用过程。 声明:关于@JsonFormat的使用,一定要导入正确完整的包。 1.注解@JsonFormat 1.使用maven引入@JsonFormat所需要的jar包,我贴一下我这里的pom文件的依赖 <!--JsonFormat--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.8.8</version> </dependency> <dependency> <groupId>com

如何在Java中以YYYY-MM-DD HH:MI:秒毫秒格式获取当前时间?

为君一笑 提交于 2020-01-06 14:26:35
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 下面的代码为我提供了当前时间。 但这并不能说明毫秒。 public static String getCurrentTimeStamp() { SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//dd/MM/yyyy Date now = new Date(); String strDate = sdfDate.format(now); return strDate; } 我以 2009-09-22 16:47:08 (YYYY-MM-DD HH:MI:Sec) 的格式获取日期。 但是我想以 2009-09-22 16:47:08.128 ((YYYY-MM-DD HH:MI:Sec.Ms))的格式检索当前时间-其中128表示毫秒。 SimpleTextFormat 将正常工作。 在这里,最小的时间单位是秒,但是如何获得毫秒呢? #1楼 您只需在日期格式字符串中添加毫秒字段: new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); SimpleDateFormat 的 API文档 详细描述了格式字符串。 #2楼 SimpleDateFormat sdf = new

密码加密与微服务鉴权JWT --- 登录功能

∥☆過路亽.° 提交于 2019-12-23 09:04:24
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> [TOC] 前言 之前写了一篇:《 密码加密与微服务鉴权JWT详细使用教程 》 实际操作(练习实例) pom(common),在原有基础上添加jwt依赖 <dependencies> <!--lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.20</version> </dependency> <!--工具--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> <!--jwt依赖--> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.3</version> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId

Java字符串到日期的转换

被刻印的时光 ゝ 提交于 2019-12-17 19:18:28
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 用Java将“ 2010年1月2日”格式的 String 转换为 Date 的最佳方法是什么? 最终,我想将月份,日期和年份分解为整数,以便可以使用 Date date = new Date(); date.setMonth().. date.setYear().. date.setDay().. date.setlong currentTime = date.getTime(); 将日期转换为时间。 #1楼 而且,某些客户端技术(例如 GWT )不提供SimpleDateFormat。 选择Calendar.getInstance()是个好主意,您的要求是比较两个日期。 长时间约会。 #2楼 String str_date = "11-June-07"; DateFormat formatter; Date date; formatter = new SimpleDateFormat("dd-MMM-yy"); date = formatter.parse(str_date); #3楼 DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date date; try { date = dateFormat.parse("2013-12-4")

simpleDateFormat线程不安全

此生再无相见时 提交于 2019-12-07 18:57:00
simpleDateFormat是我们比较常用的日期转换类,但是它是一个线程不安全的类。 举例证明 public class DateFormatExample1 { //请求总数 private static int clientTotal = 1000; //同时允许执行的线程总数 private static int threadTotal = 20; private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); public static void main(String[] args) throws InterruptedException { final Semaphore semaphore = new Semaphore(threadTotal); final CountDownLatch countDownLatch = new CountDownLatch(clientTotal); ExecutorService executorService = Executors.newCachedThreadPool(); for (int i = 0; i < clientTotal; i++) { executorService.execute(new

@JsonFormat与@DateTimeFormat注解的使用

北城余情 提交于 2019-12-04 20:16:16
背景:从数据库获取时间传到前端进行展示的时候,我们有时候可能无法得到一个满意的时间格式的时间日期,在数据库中显示的是正确的时间格式,获取出来却变成了很丑的时间戳,@JsonFormat注解很好的解决了这个问题,我们通过使用@JsonFormat可以很好的解决:后台到前台时间格式保持一致的问题,其次,另一个问题是,我们在使用WEB服务的时,可能会需要用到,传入时间给后台,比如注册新用户需要填入出生日期等,这个时候前台传递给后台的时间格式同样是不一致的,而我们的与之对应的便有了另一个注解,@DataTimeFormat便很好的解决了这个问题,接下来记录一下具体的@JsonFormat与DateTimeFormat的使用过程。 声明:关于@JsonFormat的使用,一定要导入正确完整的包。 1.注解@JsonFormat 1.使用maven引入@JsonFormat所需要的jar包,我贴一下我这里的pom文件的依赖 <!--JsonFormat--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.8.8</version> </dependency> <dependency> <groupId>com

【类库】java时间操作类库:Joda-Time

陌路散爱 提交于 2019-12-04 00:57:25
简介 Joda 是一个java的处理时间类库,需要jdk8的支持,是java.time (JSR-310). 来自 今天在无意中学习spring的文档(9.6.2 Annotation-driven Formatting)的Formatter的的源码的时候,发现这个时间类库,由于spring某些功能也依赖这个类库,所以我决定瞧瞧是怎么回事 功能 直接跟当前时间比较 isAfterNow/isBeforeNow/isEqualNow 返回Date/Calendar toDate/toCalendar 时间计算,加年/月/日/时分秒 plusYears/plusMonths/plusDays 时区设置 withZone 常用函数 dt.getEra(); dt.getYear();//获取当前年 dt.getWeekyear(); dt.getCenturyOfEra(); dt.getYearOfEra();//世纪年 dt.getYearOfCentury(); dt.getMonthOfYear();//获取月份 dt.getWeekOfWeekyear();//这周是今年的第几周 dt.getDayOfYear();//这天是今年的第几天 dt.getDayOfMonth();//月份的多少好 dt.getDayOfWeek();//一个星期的第几天 依赖

Joda-time学习笔记

 ̄綄美尐妖づ 提交于 2019-12-02 21:26:58
一、joda的优点展示 joda-time能够便捷地格式化时间输出、设定时间、加减时间、计算时间差值。跟JDK的Date/Calender相比一试便知,每个测试中上半部分是用jdk操作,下半部是用joda-time操作。最后一个我想……实在不想用jdk来实现: public class JodaTimeTest { @Test public void testPrintDate(){ Date date = new Date(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String dateText = format.format(date); Assert.assertEquals("2014-11-13", dateText); DateTime dateTime = new DateTime(); dateText = dateTime.toString("yyyy-MM-dd"); Assert.assertEquals("2014-11-13", dateText); } @Test public void testAddDate(){ Calendar calendar = Calendar.getInstance(); calendar.set(2008, Calendar

SimpleDateFormat线程不安全示例及其解决方法

落爺英雄遲暮 提交于 2019-11-30 12:11:06
我们可以用 java.text.SimpleDateFormat 类完成日期的转换和格式化操作,如: import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * @author wangmengjun * */ public class SimpleDateFormatExample { private static final DateFormat SIMPLE_DATE_FORMAT = new SimpleDateFormat( "yyyyMMdd"); public Date parseDate(String value) throws ParseException { return SIMPLE_DATE_FORMAT.parse(value); } } import java.text.ParseException; import java.util.Date; /** * * @author wangmengjun * */ public class Main { public static void main(String[] args) throws