时间转换

82 阅读1分钟
import java.util.Date;
import java.util.TimeZone;

public class ChinaToETConverter {
    public static void main(String[] args) {
        // Test the method with a sample China date and time
        Date chinaDateTime = new Date(); // Replace with your desired date and time
        
        // Convert the China date and time to ET
        Date etDateTime = convertChinaToET(chinaDateTime);
        
        // Print the converted date and time
        System.out.println("China Date and Time: " + chinaDateTime);
        System.out.println("ET Date and Time: " + etDateTime);
    }
    
    public static Date convertChinaToET(Date chinaDateTime) {
        // Define the China time zone
        TimeZone chinaTimeZone = TimeZone.getTimeZone("Asia/Shanghai");
        
        // Define the ET time zone
        TimeZone etTimeZone = TimeZone.getTimeZone("America/New_York");
        
        // Get the offset between China and ET time zones in milliseconds
        int chinaOffset = chinaTimeZone.getOffset(chinaDateTime.getTime());
        int etOffset = etTimeZone.getOffset(chinaDateTime.getTime());
        
        // Calculate the equivalent ET time
        long etTime = chinaDateTime.getTime() - chinaOffset + etOffset;
        
        // Create a new Date object with the calculated ET time
        Date etDateTime = new Date(etTime);
        
        // Return the converted ET date and time
        return etDateTime;
    }
}