1. 获取当前时间 xxx.now()
public void testcurrentdate() {
localdate curlocaldate = localdate.now();
system.out.println("地心侠士: "+curlocaldate.tostring());
localtime curloacaltime = localtime.now();
system.out.println("地心侠士: "+curloacaltime.tostring());
localdatetime curlocaldatetime = localdatetime.now();
system.out.println("地心侠士: "+curlocaldatetime.tostring());
instant curinstant = instant.now();
system.out.println("地心侠士: "+ curinstant.tostring());
}
输出结果
地心侠士: 2026-02-04
地心侠士: 17:15:59.715639800
地心侠士: 2026-02-04t17:15:59.715639800
地心侠士: 2026-02-04t09:15:59.715639800z
说明:
- localdate,localtime,localdatetime都是当前时区对应日期或时间
- instant获取到的是utc+0 日期和时间
- z 代表零时区(utc+0) t 日期和时间的分割符
2. 时间戳转成localdatetime
public void testtimestamp() {
long timestamp = 1769577638767l;
instant instant = instant.ofepochmilli(timestamp);
system.out.println("地心侠士: " + instant.tostring());
localdatetime cvlocaldate = localdatetime.ofinstant(instant, zoneid.systemdefault());
system.out.println("地心侠士: " + cvlocaldate.tostring());
localdatetime localdatet1 = localdatetime.ofepochsecond(timestamp / 1000, 0, zoneoffset.ofhours(8));
system.out.println("地心侠士: " + localdatet1.tostring());
}
输出结果
地心侠士: 2026-01-28t05:20:38.767z
地心侠士: 2026-01-28t13:20:38.767
地心侠士: 2026-01-28t13:20:38
说明:
- 使用方法 localdatetime.ofinstant 或者 localdatetime.ofepochsecond
- 使用 ofinstant ,毫秒时间戳可以直接使用
- 使用 ofepochsecond ,毫秒时间戳需要除以1000
- ofinstant 使用 zoneid.systemdefault() 获取当时区
- ofepochsecond 使用 zoneoffset.ofhours(8) 指定需要的时区
- zoneid.systemdefault() 当前时区,等同的有
zoneid.of("asia/shanghai")zoneid.of("gmt+8")zoneid.of("utc+08:00")zoneid.of("+08:00")
3. 时间串转换成localdatetime
public void testdatestr() {
datetimeformatter df = datetimeformatter.ofpattern("yyyy-mm-dd hh:mm:ss.sss");
string datestr = "2026-01-28 18:20:38.767";
localdatetime localdatetime = localdatetime.parse(datestr, df);
system.out.println("地心侠士: " + localdatetime.tostring());
localdatetime defaultparse = localdatetime.parse("2026-01-28t18:20:38");
system.out.println("地心侠士: " + defaultparse.tostring());
datetimeformatterbuilder dfbuild = new datetimeformatterbuilder();
datetimeformatter dynmicdf = dfbuild.appendpattern("yyyy-mm-dd")
.optionalstart()
.appendliteral(' ')
.optionalend()
.optionalstart()
.appendliteral('t')
.optionalend()
.appendpattern("hh:mm:ss")
.toformatter();
localdatetime dynamic1 = localdatetime.parse("2026-01-28t18:20:38", dynmicdf);
system.out.println("地心侠士: " + dynamic1.tostring());
localdatetime dynamc2 = localdatetime.parse("2026-01-28 18:20:38", dynmicdf);
system.out.println("地心侠士: " + dynamc2.tostring());
}
输出结果:
地心侠士: 2026-01-28t18:20:38.767
地心侠士: 2026-01-28t18:20:38
地心侠士: 2026-01-28t18:20:38
地心侠士: 2026-01-28t18:20:38
说明:
- 使用方法localdatetime.parse结合datetimeformatter转换
- 默认转换格式为yyyy-mm-ddthh:mm:ss
- 使用
datetimeformatterbuilder可以实现多种日期串转换成localdatetime
4. localdatetime转换成成localdate和date
public void testdateconvert() {
localdatetime dt = localdatetime.now();
system.out.println("地心侠士 " + dt.tostring());
system.out.println("localdatetime=>localdate");
localdate localdate = dt.tolocaldate();
system.out.println("地心侠士 " + localdate.tostring());
system.out.println("localdatetime=>date");
instant instant = dt.toinstant(zoneoffset.ofhours(8));
date d = date.from(instant);
system.out.println("地心侠士 " + d);
}
输出结果:
地心侠士 2026-02-06t19:09:35.092605300
localdatetime=>localdate
地心侠士 2026-02-06
localdatetime=>date
地心侠士 fri feb 06 19:09:35 cst 2026
5. date 转换成localdatetime
public void testdateconvert2() {
date date = new date();
system.out.println("地心侠士 " + date.tostring());
system.out.println("date=>localdatetime");
instant instant = date.toinstant();
localdatetime lcd = localdatetime.ofinstant(instant, zoneid.systemdefault());
system.out.println("地心侠士 " + lcd.tostring());
}
输出结果:
地心侠士 fri feb 06 19:15:38 cst 2026
date=>localdatetime
地心侠士 2026-02-06t19:15:38.122
6. 北京时间时区表示
public void testzone() {
zoneid zonidgmt8 = zoneid.of("gmt+8");
localdatetime gmt8 = localdatetime.ofinstant(instant.now(), zonidgmt8);
system.out.println("地心侠士: " + gmt8.tostring());
zoneid zonidas = zoneid.of("asia/shanghai");
localdatetime as = localdatetime.ofinstant(instant.now(), zonidas);
system.out.println("地心侠士: " + as.tostring());
zoneid zonidutc8 = zoneid.of("utc+08:00");
localdatetime utc = localdatetime.ofinstant(instant.now(), zonidutc8);
system.out.println("地心侠士: " + utc.tostring());
zoneid zonid8 = zoneid.of("+08:00");
localdatetime ad8= localdatetime.ofinstant(instant.now(), zonid8);
system.out.println("地心侠士: " + ad8.tostring());
}
输出结果:
地心侠士: 2026-02-06t18:35:26.921795200
地心侠士: 2026-02-06t18:35:26.928776600
地心侠士: 2026-02-06t18:35:26.928776600
地心侠士: 2026-02-06t18:35:26.928776600
到此这篇关于java中localdate,localdatetime,date,日期串相互转换的文章就介绍到这了,更多相关java localdate,localdatetime,date转换内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论