Joda-Time

java并发编程——线程不安全的类

心已入冬 提交于 2019-11-28 19:23:53
什么是线程不安全的类? 如果一个类的对象同时被多个线程访问,如果不做特殊的同步或并发处理,很容易表现出线程不安全的现象,比如抛出异常、逻辑处理错误等,这种类我们就称为线程不安全的类。 常见的线程不安全的类有哪些? 在此处主要讲解下SimpleDateFormat类以及JodaTime SimpleDateFormat是线程不安全的类 例如: public class DateFormatExample1 { private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd"); public static int clientTotal = 1000;//请求总数 private static void update() throws ParseException { simpleDateFormat.parse("20181008"); } public static void main(String[] args)throws Exception { ExecutorService executorService = Executors.newCachedThreadPool(); //定义线程池 for (int i = 0; i < clientTotal; i++)

Java 8 Time Api 使用指南-珍藏限量版

≡放荡痞女 提交于 2019-11-28 19:23:18
1.概述 Java 8为Date和Time引入了新的API,以解决旧 java.util.Date 和 java.util.Calendar 的缺点。作为本文的一部分,让我们从现有Date和Calendar API存在的一些问题入手,来探讨新的Java 8 Date和Time API如何解决这些问题。我们还将搞一搞Java 8时间类库中的核心类,比如 LocalDate , LocalTime , LocalDateTime , ZonedDateTime , Period , Duration 以及它们的api。 2. 旧的时间API(java8之前)的问题 线程安全 - Date 和 Calendar 类不是线程安全的,使开发者难以调试这些api的并发问题,需要编写额外的代码来处理线程安全。Java 8中引入的新的Date和Time API是不可变的和线程安全的,使得这些痛点得以解决。 API设计和易于理解 - 旧的时间api非常难以理解,操作都非常复杂,非常绕口,没有提供一些常用的解析转换方法。新的时间API是以ISO为中心的,并遵循 date, time, duration 和 periods的一致域模型。提供了一些非常实用方法以支持最常见的操作。不再需要我们自己封装一些时间操作类,而且描述语义化。 ZonedDate和Time -

在Java中,你真的会日期转换吗

社会主义新天地 提交于 2019-11-28 10:33:34
1.什么是SimpleDateFormat 在java doc对SimpleDateFormat的解释如下: SimpleDateFormatis a concrete class for formatting and parsing dates in a locale-sensitive manner. It allows for formatting(date → text), parsing (text → date), and normalization. SimpleDateFormat是一个用来对位置敏感的格式化和解析日期的实体类。他允许把日期格式化成text,把text解析成日期和规范化。 1.1使用SimpleDateFormat simpleDateFormat的使用方法比较简单: public static void main(String[] args) throws Exception { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss"); System.out.println(simpleDateFormat.format(new Date())); System.out.println(simpleDateFormat.parse("2018

Java 8 Time Api 使用指南-珍藏限量版

随声附和 提交于 2019-11-27 00:24:01
1.概述 Java 8为Date和Time引入了新的API,以解决旧 java.util.Date 和 java.util.Calendar 的缺点。作为本文的一部分,让我们从现有Date和Calendar API存在的一些问题入手,来探讨新的Java 8 Date和Time API如何解决这些问题。我们还将搞一搞Java 8时间类库中的核心类,比如 LocalDate , LocalTime , LocalDateTime , ZonedDateTime , Period , Duration 以及它们的api。 2. 旧的时间API(java8之前)的问题 线程安全 - Date 和 Calendar 类不是线程安全的,使开发者难以调试这些api的并发问题,需要编写额外的代码来处理线程安全。Java 8中引入的新的Date和Time API是不可变的和线程安全的,使得这些痛点得以解决。 API设计和易于理解 - 旧的时间api非常难以理解,操作都非常复杂,非常绕口,没有提供一些常用的解析转换方法。新的时间API是以ISO为中心的,并遵循 date, time, duration 和 periods的一致域模型。提供了一些非常实用方法以支持最常见的操作。不再需要我们自己封装一些时间操作类,而且描述语义化。 ZonedDate和Time -

@JsonFormat与@DateTimeFormat注解的使用

痴心易碎 提交于 2019-11-26 09:30:05
背景:从数据库获取时间传到前端进行展示的时候,我们有时候可能无法得到一个满意的时间格式的时间日期,在数据库中显示的是正确的时间格式,获取出来却变成了很丑的时间戳,@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