首页 > 编程语言 > java8中时间的各种转换(LocalDateTime)

java8中时间的各种转换(LocalDateTime)

时间:2023-02-07 08:55:55浏览次数:48  
标签:转换 System ld2 ISO LocalDateTime println java8 out

 

 

java8中时间的各种转换(LocalDateTime)

1.将LocalDateTime转为自定义的时间格式的字符串

public static String getDateTimeAsString(LocalDateTime localDateTime, String format) {
  DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
  return localDateTime.format(formatter);
}

2.将long类型的timestamp转为LocalDateTime

public static LocalDateTime getDateTimeOfTimestamp(long timestamp) {
  Instant instant = Instant.ofEpochMilli(timestamp);
  ZoneId zone = ZoneId.systemDefault();
  return LocalDateTime.ofInstant(instant, zone);
}

3.将LocalDateTime转为long类型的timestamp

public static long getTimestampOfDateTime(LocalDateTime localDateTime) {
  ZoneId zone = ZoneId.systemDefault();
  Instant instant = localDateTime.atZone(zone).toInstant();
  return instant.toEpochMilli();
}

4.将某时间字符串转为自定义时间格式的LocalDateTime

public static LocalDateTime parseStringToDateTime(String time, String format) {
  DateTimeFormatter df = DateTimeFormatter.ofPattern(format);
  return LocalDateTime.parse(time, df);
}

5 在当期日期上增加减少年月日、时分秒

@Test
public void test() {
//plusDays(), plusWeeks(), plusMonths(), plusYears(),plusHours()  向当前对象添加几天、几周、几个月、几年、几小时
LocalDateTime ld2 = LocalDateTime.of(2019, 2, 19, 11, 19, 59);
System.out.println(ld2);//2019-02-19T11:19:59

LocalDateTime ld3 = ld2.plusYears(2);//在当前的日期上在加两年
System.out.println(ld3);//2021-02-19T11:19:59

LocalDateTime ld4 = ld2.plusMonths(2);//在当前的日期上在加个月
System.out.println(ld4);//2019-04-19T11:19:59

LocalDateTime ld5 = ld2.plusWeeks(2);//在当前的日期上在加周  (2月28天 在加2周14天)
//ld2.plusDays(14);  //相当于
System.out.println(ld5);//2019-03-05T11:19:59

LocalDateTime ld6 = ld2.plusDays(2);//在当前的日期上在加两天
System.out.println(ld6);//2019-02-21T11:19:59

LocalDateTime ld7 = ld2.plusHours(2);//在当前的日期上在加个小时
System.out.println(ld7);//2019-02-19T13:19:59

}

2、减少

@Test
public void test() {
//minusMonths() / minusWeeks()/ minusDays()/minusYears()/minusHours() 从当前对象减去几月、几周、几天、几年、几小时
LocalDateTime ld2 = LocalDateTime.of(2019, 2, 19, 11, 19, 59);
System.out.println(ld2);//2019-02-19T11:19:59

LocalDateTime ld3 = ld2.minusYears(2);//在当前的日期上在减两年
System.out.println(ld3);//2017-02-19T11:19:59

LocalDateTime ld4 = ld2.minusMonths(2);//在当前的日期上在减两个月
System.out.println(ld4);//2018-12-19T11:19:59

LocalDateTime ld5 = ld2.minusWeeks(2);//在当前的日期上在减两周
System.out.println(ld5);//2019-02-05T11:19:59

LocalDateTime ld6 = ld2.minusDays(2);//在当前的日期上在减两天
System.out.println(ld6);//2019-02-17T11:19:59

LocalDateTime ld7 = ld2.minusHours(2);//在当前的日期上在减两个小时
System.out.println(ld7);//2019-02-19T09:19:59

LocalDateTime ld8 = ld2.minusMinutes(2);//在当前的日期上在减两分钟
System.out.println(ld8);//2019-02-19T11:17:59

LocalDateTime ld9 = ld2.minusSeconds(2);//在当前的日期上在减两秒
System.out.println(ld9);//2019-02-19T11:19:57

LocalDateTime ld10 = ld2.minusNanos(2);//在当前的日期上在减两纳秒
System.out.println(ld10);//2019-02-19T11:19:58.999999998
}

3.格式化时间

public void test() {
//DateTimeFormatter.ISO_LOCAL_DATE_TIME   ISO日期格式化程序格式化或解析没有偏移量的日期时间,例如“2011-12-03T10:15:30”。
//DateTimeFormatter.ISO_LOCAL_DATE          ISO日期格式化程序格式化或解析没有偏移量的日期,如“2011-12-03”。
//DateTimeFormatter.ISO_LOCAL_TIME          ISO时间格式化程序格式化或解析一个没有偏移量的时间,例如“10:15”或“10:15:30”。
LocalDateTime ldt = LocalDateTime.now();
DateTimeFormatter dtf2 = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
String str = ldt.format(dtf2);
System.out.println(str);

String str2 = ldt.format(DateTimeFormatter.ISO_LOCAL_DATE);
System.out.println(str2);

String str3 = ldt.format(DateTimeFormatter.ISO_LOCAL_TIME);
System.out.println(str3);

System.out.println("-----------------------------------------");
//DateTimeFormatter.ISO_DATE_TIME   类似ISO的日期格式化程序,用于格式化或解析具有偏移量和区域(如果有的话)的日期时间,如“2011-12-03T10:15:30”,“2011-12-03T10:15:30 + 01” :00'或'2011-12-03T10:15:30 + 01:00 [欧洲/巴黎]'。
//DateTimeFormatter.ISO_DATE        ISO日期格式化程序格式化或解析具有偏移量的日期(如可用),如“2011-12-03”或“2011-12-03 + 01:00”。 
//DateTimeFormatter.ISO_TIME        格式化或解析时间的ISO时间格式化程序,如果可用的偏移量,如“10:15”,“10:15:30”或“10:15:30 + 01:00”。 
String str4 = ldt.format(DateTimeFormatter.ISO_DATE_TIME);
System.out.println(str4);

String str5 = ldt.format(DateTimeFormatter.ISO_DATE);
System.out.println(str5);

String str6 = ldt.format(DateTimeFormatter.ISO_TIME);
System.out.println(str6);}

标签:转换,System,ld2,ISO,LocalDateTime,println,java8,out
From: https://www.cnblogs.com/RedOrange/p/17091605.html

相关文章

  • 杭电1335-任意进制的转换
    BasicallySpeaking​​http://acm.hdu.edu.cn/showproblem.php?pid=1335​​ProblemDescriptionTheReallyNeatoCalculatorCompany,Inc.hasrecentlyhiredyourt......
  • python 列表转换成字符串输出
    列表转换成字符串输出例如:我的列表是:a=[1,0,0,0,0,0,0,0]然后输出100000字符之间有无空格:没有空格:1"".join(map(int,a)) 有空格:1"".join([......
  • javaScript - 输入与输出语句,javaScript中的数据类型,字符类型与其它基本数据类型的互
    1.输入与输出语句//输出语句alert("hello,world")//提示弹窗console.log("hello,world")//输出到控制台//输入语句//第一个参数设置提示用户输入的提示信息//第......
  • rem单位转换为px
    consttransform=(str,baseRem)=>{constreg=/((-?\.?\d+)(\.\d+)?)rem/g;returnstr.replace(reg,function(match,pos,orginText){constval=(pa......
  • mac系统通过python批量转换doc为docx文件
    准备需要安装libreoffice这个软件下载地址:https://www.libreoffice.org/download/download/代码importosimportsubprocesssource="doc文件夹路径"dest="要转......
  • Java Date与时间戳的转换问题
    Java中String与Date格式之间的转换-NemoWang-博客园(cnblogs.com)主要是String类型的时间,需要使用DateFormat来进行设置转换的格式,调用fmt的parse方法进行将时间转为......
  • mysql 日期和时间戳的转换
    (18条消息)MySQL日期和时间戳的转换|以及DATE_FORMAT()用法_慌途L的博客-CSDN博客_date_format能转换时间戳吗一小时的时间戳是2*3600*1000,这是13位的时间戳的用法,如......
  • Java8中匹配两个list的数据(string的list与对象list的属性求差集)
    场景Java8新特性-Stream对集合进行操作的常用API:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/126070657上面介绍常用api的使用,下面记录一个常用场景的......
  • Python-字符串str和json格式的转换
    我是精神抖擞王大鹏,不卑不亢,和蔼可亲~计算机硕士,目前小米大数据开发。日常会分享总结一些自己面试实际问题的回答,欢迎一起讨论。公众号:diting_dapengstr转jsonstr转换为js......
  • java8 list取出重复值
    @Testpublicvoidtest10(){//根据device_code去重,取出重复值List<Employee>emps=newArrayList<>();List<String>dupList=emps.stream().colle......