下面是详细讲解Java日期时间字符串和毫秒相互转换的方法的攻略。
一、Java日期时间字符串转毫秒
1.1 SimpleDateFormat类
在Java中,可以使用SimpleDateFormat类来完成日期时间字符串的转换。SimpleDateFormat是Java中日期时间格式化类的一个子类,它继承了DateFormat类,提供了非常方便的日期时间格式化和解析功能。
代码示例如下:
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtils {
/**
* 将日期时间字符串转换为毫秒值
* @param dateTimeStr 日期时间字符串,格式为"yyyy-MM-dd HH:mm:ss"
* @return 毫秒值
*/
public static long dateTimeStrToMills(String dateTimeStr) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(dateTimeStr);
return date.getTime();
} catch (Exception e) {
e.printStackTrace();
return 0;
}
}
}
在上面的代码中,我们定义了一个名为“dateTimeStrToMills”的方法来将日期时间字符串转换为毫秒值。该方法使用了SimpleDateFormat类来解析日期时间字符串,具体步骤为:
- 创建SimpleDateFormat对象并指定日期时间字符串的格式;
- 调用SimpleDateFormat对象的parse()方法将日期时间字符串转换为Date对象;
- 调用Date对象的getTime()方法获取毫秒值。
1.2 DateTimeFormatter类
除了SimpleDateFormat类外,Java 8及更高版本还可以使用DateTimeFormatter类来完成日期时间字符串的转换。DateTimeFormatter是Java中日期时间格式化类的一个重要实现类,它提供了与SimpleDateFormat类类似的功能。
代码示例如下:
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class DateUtils {
/**
* 将日期时间字符串转换为毫秒值
* @param dateTimeStr 日期时间字符串,格式为"yyyy-MM-dd HH:mm:ss"
* @return 毫秒值
*/
public static long dateTimeStrToMills(String dateTimeStr) {
try {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime dateTime = LocalDateTime.parse(dateTimeStr, formatter);
return dateTime.toInstant(java.time.ZoneOffset.of("+8")).toEpochMilli();
} catch (Exception e) {
e.printStackTrace();
return 0;
}
}
}
在上面的代码中,我们定义了与之前相似的方法“dateTimeStrToMills”,不同的是该方法使用了Java 8中新增的DateTimeFormatter类来解析日期时间字符串,具体步骤为:
- 创建DateTimeFormatter对象并指定日期时间字符串的格式;
- 调用LocalDateTime类的静态方法parse()将日期时间字符串转换为LocalDateTime对象;
- 调用LocalDateTime对象的toInstant()方法将其转换为Instant对象;
- 调用Instant对象的toEpochMilli()方法获取毫秒值。
二、毫秒转Java日期时间字符串
将毫秒转换为Java中的日期时间字符串同样可以使用SimpleDateFormat和DateTimeFormatter类。
2.1 SimpleDateFormat类
代码示例如下:
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtils {
/**
* 将毫秒值转换为日期时间字符串
* @param mills 毫秒值
* @return 日期时间字符串,格式为"yyyy-MM-dd HH:mm:ss"
*/
public static String millsToDateTimeStr(long mills) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date(mills);
return sdf.format(date);
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
}
在上面的代码中,我们定义了一个名为“millsToDateTimeStr”的方法来将毫秒值转换为日期时间字符串。该方法同样使用了SimpleDateFormat类来格式化日期时间字符串,具体步骤为:
- 创建SimpleDateFormat对象并指定日期时间字符串的格式;
- 调用Date的构造函数创建Date对象并将毫秒值作为参数传入;
- 调用SimpleDateFormat对象的format()方法将Date对象格式化为日期时间字符串。
2.2 DateTimeFormatter类
代码示例如下:
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class DateUtils {
/**
* 将毫秒值转换为日期时间字符串
* @param mills 毫秒值
* @return 日期时间字符串,格式为"yyyy-MM-dd HH:mm:ss"
*/
public static String millsToDateTimeStr(long mills) {
try {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime dateTime = LocalDateTime.ofInstant(java.time.Instant.ofEpochMilli(mills), java.time.ZoneId.systemDefault());
return formatter.format(dateTime);
} catch (DateTimeParseException e) {
e.printStackTrace();
return "";
}
}
}
在上面的代码中,我们定义了与之前相似的方法“millsToDateTimeStr”,不同的是该方法使用了Java 8中新增的DateTimeFormatter类来格式化日期时间字符串,具体步骤为:
- 创建DateTimeFormatter对象并指定日期时间字符串的格式;
- 调用Instant类的静态方法ofEpochMilli()将毫秒值转换为Instant对象;
- 调用LocalDateTime类的静态方法ofInstant()将Instant对象转换为LocalDateTime对象;
- 调用DateTimeFormatter对象的format()方法将LocalDateTime对象格式化为日期时间字符串。
至此,我们已经详细讲解了Java日期时间字符串和毫秒相互转换的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java日期时间字符串和毫秒相互转换的方法 - Python技术站