日期时间处理

Java8内每个类含义

在 Java8 之前操作时间,用的都是 Date 和 Calendar 类,但这两个类,操作起来及其繁琐,且在时间转换、时区转换的时候也很麻烦,因此 JDK 官方在 8 之后,引入了 LocalDateTime 以及相关类,通过新的类来定义和操作时间,也十分的简单清晰,下面我们就来我看一下如何操作。

Instant: 时间戳

Duration: 持续时间, 时间差

LocalDate: 只包含⽇期, ⽐如: 2016-10-20

LocalTime: 只包含时间, ⽐如: 231210

LocalDateTime: 包含⽇期和时间, ⽐如: 2016-10-20 231421

Period: 时间段

ZoneOffset: 时区偏移量, ⽐如: +8:00

ZonedDateTime: 带时区的时间

Clock: 时钟, ⽐如获取⽬前美国纽约的时间

代码实现

localdatetime -> 其他类型

// =================================================================================

public static Date localDateTimeToDate(LocalDateTime localDateTime) {

Date date = Date.from(localDateTime.toInstant(ZoneOffset.ofHours(8)));

return date;

}

public static Date localDateTimeToDate(LocalDateTime localDateTime, ZoneOffset zoneOffset) {

Date date = Date.from(localDateTime.toInstant(zoneOffset));

return date;

}

public static long localDateTimeToTimestamp(LocalDateTime localDateTime) {

long timestamp = localDateTime.toInstant(ZoneOffset.ofHours(8)).getEpochSecond();

return timestamp;

}

public static long localDateTimeToTimestamp(LocalDateTime localDateTime, ZoneOffset zoneOffset) {

long timestamp = localDateTime.toInstant(zoneOffset).getEpochSecond();

return timestamp;

}

public static String localDateTimeToString(LocalDateTime localDateTime) {

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

String string = dateTimeFormatter.format(localDateTime);

return string;

}

public static String localDateTimeToString(LocalDateTime localDateTime, DateTimeFormatter dateTimeFormatter) {

String string = dateTimeFormatter.format(localDateTime);

return string;

}

public static String localDateTimeToString(LocalDateTime localDateTime, String pattern) {

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(pattern);

String string = dateTimeFormatter.format(localDateTime);

return string;

}

date -> 其他类型

// =================================================================================

public static long dateToTimeStamp(Date date) {

return date.getTime();

}

public synchronized static String dateToString(Date date, SimpleDateFormat simpleDateFormat) {

return simpleDateFormat.format(date);

}

public static String dateToString(Date date) {

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

return simpleDateFormat.format(date);

}

public static LocalDateTime dateToLocalDateTime(Date date) {

LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());

return localDateTime;

}

public static LocalDateTime dateToLocalDateTime(Date date, ZoneId zoneId) {

LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), zoneId);

return localDateTime;

}

timestamp -> 其他类型

// =================================================================================

public static Date timestampToDate(long timestamp) {

return new Date(timestamp);

}

public static LocalDateTime timestampToLocalDateTime(long timestamp) {

LocalDateTime localDateTime = Instant.ofEpochSecond(timestamp).atZone(ZoneOffset.ofHours(8)).toLocalDateTime();

return localDateTime;

}

string -> 其他类型

// =================================================================================

public static Date stringToDate(String string, SimpleDateFormat simpleDateFormat) throws ParseException {

return simpleDateFormat.parse(string);

}

public static Date stringToDate(String string) throws ParseException {

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

return simpleDateFormat.parse(string);

}

public static LocalDateTime stringToLocalDateTime(String string) {

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

LocalDateTime localDateTime = LocalDateTime.parse(string, dateTimeFormatter);

return localDateTime;

}

public static LocalDateTime stringToLocalDateTime(String string, DateTimeFormatter dateTimeFormatter) {

LocalDateTime localDateTime = LocalDateTime.parse(string, dateTimeFormatter);

return localDateTime;

}

public static long stringToTimestamp(String string) {

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

LocalDateTime localDateTime = LocalDateTime.parse(string, dateTimeFormatter);

long timestamp = localDateTime.toInstant(ZoneOffset.ofHours(8)).getEpochSecond();

return timestamp;

}

公众号截图

文章在公众号「iceWang」第一手更新,有兴趣的朋友可以关注公众号,第一时间看到笔者分享的各项知识点,谢谢!笔芯!

java8 日期转换_Java8日期时间——LocalDateTime的使用以及相互转换相关推荐

  1. 日期转换--接收日期与数据库存储不兼容问题时间段查询

    一.日期转换--接收日期与数据库存储不兼容问题 问题描述: 页面获取的日期,无法查询或者存储到数据库: 页面获取的格式为"yyyy-MM-dd HH:mm:ss",数据库数据类型为 ...

  2. 将字符串形式的日期转换成日期对象

    JS 将字符串转换成日期类型 将字符串形式的日期转换成日期对象 var strTime="2011-04-16"; //字符串日期格式            var date= n ...

  3. JS 将字符串形式的日期转换成日期类型

    1.将字符串形式的日期转换成日期对象 var strTime="2011-04-16"; //字符串日期格式 var date=new Date(Date.parse(strTim ...

  4. python 数字日期转换,格式化时间,日期加减天,小时,分钟

    把数字转换成日期格式  例如:数字 202105271354 转换成日期格式 2021-05-27 13:54:00 from dateutil.parser import parset_list1 ...

  5. java程序日期转换_Java 日期转换详解及实例代码

    Java 日期转换 涉及的核心类:Date类.SimpleDateFormat类.Calendar类 一. Date型与long型 Date型转换为long型 Date date = new Date ...

  6. mysql带中文日期转换_MySQL日期函数与日期转换格式化函数大全

    Mysql作为一款开元的免费关系型数据库,用户基础非常庞大,本文列出了MYSQL常用日期函数与日期转换格式化函数 1.DAYOFWEEK(date) 2.WEEKDAY(date) 3.DAYOFMO ...

  7. pandas 中DataFrame使用:数据标准化、数据分组、日期转换、日期格式化、日期抽取

    本文测试使用Pandas使用的是Spyder,python3.6版本,已经安装好pandas包.测试数据已放云盘:链接:https://pan.baidu.com/s/1zozpY2BUTIvEJKf ...

  8. oracle 日期改字符格式_oracle怎么把数值型日期转换成日期字符型

    展开全部 oracle把数值型日期转换bai成日期字符du型的操作方法和详细步骤zhi如下: 1.首先dao,将字符串类型版转换为权数字类型. 此方法使用to_number()直接进行转换. 具体语法 ...

  9. python 常见日期转换、excel时间转化、日期加N天、减N天等操作

    import datetime import time from datetime import timedelta""" 小知识:Excel的日期是从1900年1月1日 ...

最新文章

  1. 可用于nodejs的SuperAgent(ajax API)
  2. 他开发了基因界的百科全书,贡献却少有人知
  3. 节省公司的宽带接入成本
  4. c语言实现连续几个bit位置1,【C语言简单说】四:常量
  5. Linux 性能监控 : CPU 、Memory 、 IO 、Network
  6. css3点击会移动到点,CSS3过渡点击事件
  7. office教程:教你Excel 怎么样使用信息函数
  8. flink中的HybirdmemorySegment
  9. UE4暴露游戏元素给蓝图
  10. PHOTOSHOP使用总结
  11. CUDA 优化之 PReLU 性能调优
  12. H5拖拽方法drag在VUE中的应用实例
  13. sublime text豆沙绿,护眼自制主题
  14. walking机器人仿真教程-应用-多点导航结合睡眠功能实现智能取药
  15. 微信公众平台开发[6] —— 微信开发集成类的使用
  16. 231个web前端的javascript特效分享(仅供本人学习,非教程类型)
  17. 华为手机助手 android,华为手机助手(安卓版)
  18. 开发人员实用的在线工具
  19. ORACLE 体系结构详细图
  20. 利用AI+大数据的方式分析恶意样本(十三)

热门文章

  1. POSIX 消息队列基础知识复习,以及相关例程
  2. Eclipse中启动tomcat报错:A child container failed during start
  3. Sublime Text的使用技巧
  4. 产品规划,要考虑哪些方面?
  5. 读书笔记 |《推荐系统实践》- 个性化推荐系统总结
  6. 免费报名|《PMCAFF产品经理第一课》Facebook、360、京东早期核心产品大牛重磅开讲...
  7. 使用OneHotEncoderEstimator操作Affairs
  8. vueRouter-命名视图
  9. JAVA模拟HTTP post请求上传图片
  10. 微信公众平台开发(38)一站到底在线答题