private static final int OFFSET = 8 * 60 * 60;
private static final ZoneId ZONE_ID = ZoneOffset.systemDefault();
private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss,SSS");
@Test
public void test() {
String string = "2021-10-01T04:37:34,703";
LocalDateTime localDateTime = LocalDateTime.parse(string, FORMATTER);
long s = localDateTime.atZone(ZONE_ID).toEpochSecond();
long ms = localDateTime.toInstant(ZoneOffset.ofTotalSeconds(OFFSET)).toEpochMilli();
System.out.println(s);
System.out.println(ms);
实际运行结果:
1633034254
1633034254703
String 类的静态 format() 方法用于创建
格式化
的
字符串
。format() 方法有两种重载形式:
(1)format(String format, Object.....args)
该方法使用指定的格式
字符串
和参数返回一个
格式化
字符串
,
格式化
后的新
字符串
使用本地默认的
语言
环境。语法为:
str.format(String format, Object......args);
format:格式
字符串
args:格式
字符串
中由格式说明符引用的参数。如果还有格式说明符以外的参
import
java
.text.DateFormat;
import
java
.text.ParseException;
import
java
.text.SimpleDateFormat;
import
java
.util.Date;
import
java
.util.Locale;
public class TimeFormat {
public static void main(Stri
全部代码出自电子工业出版社夏先波的《
Java
JDK
实例宝典》一书,本书以J2SE 5.0为
开发
环境,选取
Java
应用的典型实例,循序渐进地介绍了
Java
语言
的各种
开发
方法和技巧,实例代码注释详细规范,思路清晰。
第1章 ...
在
Java
8之前,我们使用SimpleDateFormat和DateFormat类来表示一种格式,这存在很多
问题
,例如它们笨重,易变且不是线程安全的,这意味着无法共享它们,并且每次都需要要将String转换为Date,必须创建一个新的DateFormat对象。 尽管将SimpleDateFormat封装到线程局部变量中确实可以缓解,但这还不够。
JDK
8在新的
DateTime
Formatter
类中解决了该
问题
,该类可用于定义
日期
和
时间
格式,例如“ yyyy-MM-dd HH:mm:SS”,用于指定