LocalDate的用法与String互转

2023-11-12

一、LocalDate常用用法

1.1、申明定义

LocalDate formatDate = LocalDate.of(2020, 2, 5); // 自定义
LocalDate today = LocalDate.now(); // 获取当前日期

1.2、getX() 获取年月日等

注意:获取月份使用getMonthValue()

System.out.println(formatDate.getMonth()); // FEBRUARY 获取所在月份(英文)
System.out.println(formatDate.getMonthValue()); // 2 获取所在月份(英文)
System.out.println(formatDate.getDayOfMonth()); // 5 获取所在天

1.3、plusX()、minusX()

LocalDate nextDay = formatDate.plusDays(1);
System.out.println(nextDay); // 2020-02-06 明天
LocalDate nextWeek = formatDate.plusWeeks(1);
System.out.println(nextWeek); // 2020-02-12 下周当天
LocalDate lastMonth = formatDate.minusMonths(1);
System.out.println(lastMonth); // 2020-01-05 上月当天

1.4、扩展用法

常用于报表中计算同比环比等日期

// 同环比日期计算
LocalDate firstWeekDay = formatDate.with(TemporalAdjusters.previous(DayOfWeek.MONDAY));
System.out.println(firstWeekDay); // 2020-02-03 本周第一天
LocalDate firstMonthDay = formatDate.with(TemporalAdjusters.firstDayOfMonth());
System.out.println(firstMonthDay); // 2020-02-01 本月第一天
LocalDate firstYearDay = formatDate.with(TemporalAdjusters.firstDayOfYear());
System.out.println(firstYearDay); // 2020-01-01 本年第一天
// 判断两个日期前后
boolean param = formatDate.isBefore(today);
System.out.println(param); // true 判断a是否早于b
// 计算两个日期的间隔天数
LocalDate start = LocalDate.parse("2019-12-01");
LocalDate end = LocalDate.parse("2020-02-05");
long days = start.until(end, ChronoUnit.DAYS);
System.out.println("days: " + days); // days: 66

二、LocalDate与String互转

2.1、LocalDate转String

DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate formatDate = LocalDate.of(2020, 2, 5);
String dateStr = formatDate.format(df);
System.out.println("LocalDate => String: " + dateStr);

2.2、String转LocalDate

DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate dateParam = LocalDate.parse(dateStr, df);
System.out.println("String => LocalDate: " + dateParam);

2.3 固定格式输出时间字符串

	/**
	 * 时间截取--日
	 */
	private String timeSubStringDay(LocalDateTime sendTime) {
		String localDateTimeStr = sendTime.format(DateTimeFormatter.ofPattern("MM-dd     HH:mm"));
		return localDateTimeStr;
	}

三、代码实践

import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;

/**
 * LocalDate日期转换
 *
 * @author: Tansj
 * @since: 2020/02/08
 */
public class Test {

    public static void main(String[] args) {
        LocalDate formatDate = LocalDate.of(2020, 2, 5);
        LocalDate today = LocalDate.now();
        System.out.println(formatDate); // 2020-02-05 当天
        System.out.println(today); // 2020-02-08 本日当天
        boolean param = formatDate.isBefore(today);
        System.out.println(param); // true 判断a是否早于b
        System.out.println("=========================================");
        System.out.println(formatDate.getMonth()); // FEBRUARY 获取所在月份(英文)
        System.out.println(formatDate.getMonthValue()); // 2 获取所在月份(数字)
        System.out.println(formatDate.getDayOfMonth()); // 5 获取所在天
        System.out.println("=========================================");
        LocalDate nextDay = formatDate.plusDays(1);
        System.out.println(nextDay); // 2020-02-06 明天
        LocalDate nextWeek = formatDate.plusWeeks(1);
        System.out.println(nextWeek); // 2020-02-12 下周当天
        LocalDate lastMonth = formatDate.minusMonths(1);
        System.out.println(lastMonth); // 2020-01-05 上月当天
        System.out.println("=========================================");
        LocalDate firstWeekDay = formatDate.with(TemporalAdjusters.previous(DayOfWeek.MONDAY));
        System.out.println(firstWeekDay); // 2020-02-03 本周第一天
        LocalDate firstMonthDay = formatDate.with(TemporalAdjusters.firstDayOfMonth());
        System.out.println(firstMonthDay); // 2020-02-01 本月第一天
        LocalDate firstYearDay = formatDate.with(TemporalAdjusters.firstDayOfYear());
        System.out.println(firstYearDay); // 2020-01-01 本年第一天
        System.out.println("=========================================");
        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        String dateStr = formatDate.format(df);
        System.out.println("LocalDate => String: " + dateStr); // LocalDate => String: 2020-02-05
        LocalDate dateParam = LocalDate.parse(dateStr, df);
        System.out.println("String => LocalDate: " + dateParam); // String => LocalDate: 2020-02-05
        LocalDate start = LocalDate.parse("2019-12-01");
        LocalDate end = LocalDate.parse("2020-02-05");
        long days = start.until(end, ChronoUnit.DAYS);
        System.out.println("days: " + days); // days: 66
    }
}

获取日期中的字符串 如"02-03"

String time = hydrologyVO.getSendTime().format(DateTimeFormatter.ofPattern("MM-dd"));


 

一、LocalDateTime转换至String互转

LocalDateTime localDateTime=LocalDateTime.parse(dates,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
String localDateTimeStr=LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));


二、LocalDateTime转换至Long互转

Long localDateTimeLong=Timestamp.valueOf(LocalDateTime.now()).getTime();
        LocalDateTime localDateTimeLongTime=LocalDateTime.ofInstant(Instant.ofEpochMilli(localDateTimeLong)

public static void main(String[] args) {
        DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime localDateTime = LocalDateTime.now();
        String dateStr = localDateTime.format(fmt);
        System.out.println(dateStr);
    }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LocalDate的用法与String互转 的相关文章

随机推荐

  • BGP AnyCast

    什么是BGP AnyCast BGP anycast就是 利用一个 多个 as号码在不同的地区广播相同的一个ip段 利用bgp的寻路原则 短的as path 会选成最优路径 bgp寻路原则之n 从而优化了访问速度 其实bgp anycast
  • 【干货】虚拟对抗训练简介

    虚拟对抗训练是一种有效的正则化技术 在监督学习 半监督学习和无监督聚类方面取得了良好的效果 虚拟对抗训练已用于 提高监督学习绩效 半监督学习 深度无监督聚类 有几种正则化技术可以防止过度拟合 并有助于模型更好地概括出看不见的例子 正则化有助
  • Linux和UNIX“新手”们必备的与Linux系统编程相关的基本概念

    1 操作系统的核心 内核 术语 操作系统 通常包含两种不同含义 1 指完整的软件包 这包括用来管理计算机资源的核心层软件 以及附带的所有标准软件工具 诸如命令行解释器 图形用户界面 文件操作工具和文本编辑器等 2 在更狭义的范围内 是指管理
  • 用Android studio 2.3调度程序时提示“Installation failed with message Failed to establish session”错误,需要在在开发者选项

    用Android studio 2 3调度程序时提示 Installation failed with message Failed to establish session 错误 需要在在开发者选项里关闭MIUI优化
  • 【以太网硬件二十一】USXGMII是什么?-Part2

    个人主页 highman110 作者简介 一名硬件工程师 持续学习 不断记录 保持思考 输出干货内容 目录 PCS功能细节 XGMII到USXGMII的映射 带内配置和状态信号 自协商相关 电气特性 PCS功能细节 USXGMII把并行的X
  • Apache Flink Flink Time & Window 解析

    一 Window Time 介绍 Apache Flink 以下简称 Flink 是一个天然支持无限流数据处理的分布式计算框架 在 Flink 中 Window 可以将无限流切分成有限流 是处理有限流的核心组件 现在 Flink 中 Win
  • call、apply、bind的区别

    为什么要改变this的指向 var name codereasy let obj name 张三 say function console log this name obj say setTimeout obj say 10 正常情况下
  • linux I/O优化 磁盘读写参数设置

    转载 http wlservers blog 163 com blog static 120622304201241715945256 关于页面缓存的信息 可以用 cat proc meminfo 看到 其中的Cached 指用于pagec
  • Java Maven安装及环境配置教程

    一 安装 1 安装包 apache maven 3 6 3 安装包下载地址 2 下载安装包然后直接解压就行 注意 文件的位置路径不能有中文 二 环境配置 1 用户变量 双击Path 点击新建 将如下复制进去 然后点击确定 MAVEN HOM
  • opencv实战项目 手势识别-手部距离测量

    手势识别系列文章目录 手势识别是一种人机交互技术 通过识别人的手势动作 从而实现对计算机 智能手机 智能电视等设备的操作和控制 1 opencv实现手部追踪 定位手部关键点 2 opencv实战项目 实现手势跟踪并返回位置信息 封装调用 3
  • Spark数据分析之pyspark

    一 大数据简史 从hadoop到Spark 1 hadoop的出现 1 问题 1990年 电商爆发以及机器产生了大量数据 单一的系统无法承担 2 办法 为了解决 1 的问题许多公司 尤其是大公司领导了普通硬件集群的水平扩展 3 执行 had
  • HashCode方法的调用对Java锁的影响

    在回顾以前写的锁升级的代码时 意外发现hashCode方法的调用会对锁产生影响 于是做了几个测试并查阅了一些资料 把最终的结果记录于此 结论 首先上结论 一个对象在调用原生hashCode方法后 来自Object的 未被重写过的 该对象将无
  • qt可停靠控件和工具栏(Dock Widgets and Toolbars)

    可停靠控件能够停靠在QMainWindow中或者作为一个独立窗口浮动 QMainWindow提供了四个可停靠控件的地方 上方 下方 左方 右方 Microsoft Visual Stadio程序和Qt Linguist程序使用大量的可停靠窗
  • python 函数中的省略号

    1 省略号在python里也是个对象 2 赋值号后面省略号 给该变量赋值一个default值 具体python的机制我不清楚 应该是在类里面定义好的 或者参数省略 3 冒号后面省略号 表示函数的定义内容不写了 函数的定义内容不写了 相当于p
  • PTA6(python)

    python程序设计06 面向对象 7 1 求两点之间距离 7 2 类的定义和使用 7 3 优异生查询 类和对象 7 4 新型计算器 7 5 学生类的使用 7 6 三维向量运算 7 7 继承类应用 7 8 有关队列操作 7 9 有关堆栈操作
  • python调用everything批量查找表格中的文件名在磁盘中是否存在

    python调用everything批量查找表格中的文件名在磁盘中是否存在 介绍 Everything 配置 使用openpyxl读写文件 读文件 写文件 BeautifulSoup的使用 创建 beautifulsoup 对象 soup
  • 基础实验篇

    uORB是PX4 Pixhawk系统中非常重要且关键的模块之一 是用于无人机模块间通信的协议机制 本篇将详细介绍uORB并详细拆解uORB消息读写与自定义实验流程 三 基础实验篇 uORB消息读写与自定义实验 三 01 基于RflySim平
  • 代码随想录一刷-Day01

    代码随想录一刷 Day01 LeetCode704 二分查找 这道属于是入门必刷了 但是虽然能做出来 在细节上还是不够注意 public int search int nums int target if nums null nums le
  • @excel注解_EasyPOI 详细教程以及注解的使用

    因为项目的原因需要用到POI来操作Excel 文档 以前都是直接使用POI来操作的 但是最近听到easypoi的存在 所以自己简单的尝试了下 别说 他还真的挺好用的 Easypoi介绍 Easypoi 为谁而开发 不太熟悉poi的 不想写太
  • LocalDate的用法与String互转

    一 LocalDate常用用法 1 1 申明定义 LocalDate formatDate LocalDate of 2020 2 5 自定义 LocalDate today LocalDate now 获取当前日期 1 2 getX 获取