SimpleDateFormat
是 Java 中用于格式化和解析日期的类
SimpleDateFormat
对象设置适当的时区。可以使用 setTimeZone()
方法来实现这一点。例如,如果要将时区设置为 UTC,可以这样做:import java.text.SimpleDateFormat;
import java.util.TimeZone;
public class Main {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
}
}
SimpleDateFormat
对象,可以解析和格式化日期。例如:import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class Main {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
// 解析字符串形式的日期
String dateStr = "2021-08-01T12:34:56.789Z";
try {
Date date = sdf.parse(dateStr);
System.out.println("Parsed date: " + date);
} catch (ParseException e) {
e.printStackTrace();
}
// 格式化日期为字符串
Date currentDate = new Date();
String formattedDate = sdf.format(currentDate);
System.out.println("Formatted date: " + formattedDate);
}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class Main {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
String dateStr = "2021-08-01T12:34:56.789Z";
try {
Date date = sdf.parse(dateStr);
System.out.println("Parsed date: " + date);
// 转换为 PST 时区
SimpleDateFormat pstSdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
pstSdf.setTimeZone(TimeZone.getTimeZone("PST"));
String pstDateStr = pstSdf.format(date);
System.out.println("Date in PST: " + pstDateStr);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
通过以上方法,可以有效地处理 SimpleDateFormat
中的时区问题。