热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

java8LocalDate使用详解

这篇文章主要介绍了java8LocalDate使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

LocalDate

看看新的LocalDate怎么用:

// 取当前日期:

LocalDate today = LocalDate.now(); // -> 2019-03-29

// 根据年月日取日期,04月就是04:

LocalDate crischristmas = LocalDate.of(2019, 04, 22); // -> 2019-04-22

// 根据字符串取:

LocalDate endOfFeb = LocalDate.parse(“2019-03-28”); // 严格按照ISO yyyy-MM-dd验证,03写成3都不行,当然也有一个重载

方法允许自己定义格式

LocalDate.parse(“2019-02-31”); // 无效日期无法通过:DateTimeParseException: Invalid date

日期转换经常遇到,比如:

// 取本月第1天:

LocalDate firstDayOfThisMOnth= today.with(TemporalAdjusters.firstDayOfMonth()); // 2019-03-01

// 取本月第2天:

LocalDate secOndDayOfThisMonth= today.withDayOfMonth(2); // 2019-03-02

// 取本月最后一天,再也不用计算是28,29,30还是31:

LocalDate lastDayOfThisMOnth= today.with(TemporalAdjusters.lastDayOfMonth()); // 2019-03-31

// 取下一天:

LocalDate firstDayOfNextMOnth= lastDayOfThisMonth.plusDays(1); // 变成了2019-04-01

// 取2019年1月第一个周一,这个计算用Calendar要死掉很多脑细胞:

LocalDate firstMondayOf2015 = LocalDate.parse(“2019-01-01”).with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY)); // 2019-01-05

LocalTime

LocalTime只包含时间,以前用java.util.Date怎么才能只表示时间呢?答案是,假装忽略日期。

LocalTime包含毫秒:

LocalTime now = LocalTime.now(); // 11:09:09.240

你可能想清除毫秒数:

LocalTime now = LocalTime.now().withNano(0)); // 11:09:09

构造时间也很简单:

LocalTime zero = LocalTime.of(0, 0, 0); // 00:00:00

LocalTime mid = LocalTime.parse(“12:00:00”); // 12:00:00

时间也是按照ISO格式识别,但可以识别以下3种格式:

12:00

12:01:02

12:01:02.345

JDBC

最新JDBC映射将把数据库的日期类型和Java 8的新类型关联起来:

SQL -> Java

date -> LocalDate

time -> LocalTime

timestamp -> LocalDateTime

补充知识:JAVA中算法排序是计算时间差值,JAVA8中的Duration类

Duration与Period相对应,Period用于处理日期,而Duration计算时间差还可以处理具体的时间,也是通过调用其静态的between方法,该方法为between(Temporal startInclusive,Temporal endExclusive),因此可以传入两个Instant的实例(Instant实现了Temporal接口),并可以以毫秒(toMills)、秒(getSeconds)等多种形式表示得到的时间差。

public static void main(String[] agrs) {
 
 int n = 10;
 int[] arr = SortTestHelper.generateRandomArray(n, 0, n);
 int[] arr2 = SortTestHelper.copy(arr, n);
 // int[] te=new int[]{2,6,3,1,4,7,5,8,9,10};
 System.out.println(); 
 Instant start_time = Instant.now();// 开始时间
 SelectSort.SelectSort(arr, n);
 Instant end_time = Instant.now();// 结束时间
 SortTestHelper.printArray(arr, n);
 System.out.println("时间差为:" + Duration.between(start_time, end_time).toMillis());
 
 start_time = Instant.now();// 开始时间
 insertionSort.insertionSort(arr2, n);
 end_time = Instant.now();// 结束时间
 SortTestHelper.printArray(arr2, n);
 System.out.println("时间差为:" + Duration.between(start_time, end_time).toMillis());
 
 }

以上这篇java8 LocalDate 使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 本文介绍如何利用动态规划算法解决经典的0-1背包问题。通过具体实例和代码实现,详细解释了在给定容量的背包中选择若干物品以最大化总价值的过程。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 题目描述:给定n个半开区间[a, b),要求使用两个互不重叠的记录器,求最多可以记录多少个区间。解决方案采用贪心算法,通过排序和遍历实现最优解。 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • 探讨一个显示数字的故障计算器,它支持两种操作:将当前数字乘以2或减去1。本文将详细介绍如何用最少的操作次数将初始值X转换为目标值Y。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文探讨如何设计一个安全的加密和验证算法,确保生成的密码具有高随机性和低重复率,并提供相应的验证机制。 ... [详细]
  • 深入解析:手把手教你构建决策树算法
    本文详细介绍了机器学习中广泛应用的决策树算法,通过天气数据集的实例演示了ID3和CART算法的手动推导过程。文章长度约2000字,建议阅读时间5分钟。 ... [详细]
  • 在金融和会计领域,准确无误地填写票据和结算凭证至关重要。这些文件不仅是支付结算和现金收付的重要依据,还直接关系到交易的安全性和准确性。本文介绍了一种使用C语言实现小写金额转换为大写金额的方法,确保数据的标准化和规范化。 ... [详细]
  • 在给定的数组中,除了一个数字外,其他所有数字都是相同的。任务是找到这个唯一的不同数字。例如,findUniq([1, 1, 1, 2, 1, 1]) 返回 2,findUniq([0, 0, 0.55, 0, 0]) 返回 0.55。 ... [详细]
  • 本文探讨了卷积神经网络(CNN)中感受野的概念及其与锚框(anchor box)的关系。感受野定义了特征图上每个像素点对应的输入图像区域大小,而锚框则是在每个像素中心生成的多个不同尺寸和宽高比的边界框。两者在目标检测任务中起到关键作用。 ... [详细]
author-avatar
小哥脾气
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有