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
中的时区问题。