Java 时区之间时间转换

本文介绍了Java中日期时间的格式化处理方法,包括使用SimpleDateFormat进行日期时间的格式化输出,通过Calendar和GregorianCalendar类获取和设置时区,以及如何实现不同地区之间的时区转换,并展示了UTC时间的获取方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SimpleDateFormat foo = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);
System.out.println(“foo:” + foo.format(new Date()));

    Calendar gc = GregorianCalendar.getInstance();
    System.out.println("gc.getTime():" + gc.getTime());
    System.out.println("gc.getTimeInMillis():" + new Date(gc.getTimeInMillis()));

    // 当前系统默认时区的时间:
    Calendar calendar = new GregorianCalendar();
    System.out.print("时区:" + calendar.getTimeZone().getID() + "  ");
    System.out.println("时间:" + calendar.get(Calendar.HOUR_OF_DAY) + ":" + calendar.get(Calendar.MINUTE));
    // 美国洛杉矶时区
    TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");
    // 时区转换
    calendar.setTimeZone(tz);
    System.out.print("时区:" + calendar.getTimeZone().getID() + "  ");
    System.out.println("时间:" + calendar.get(Calendar.HOUR_OF_DAY) + ":" + calendar.get(Calendar.MINUTE));
    Date time = new Date();

    // 1、取得本地时间:
    java.util.Calendar cal = java.util.Calendar.getInstance();

    // 2、取得时间偏移量:
    int zoneOffset = cal.get(java.util.Calendar.ZONE_OFFSET);

    // 3、取得夏令时差:
    int dstOffset = cal.get(java.util.Calendar.DST_OFFSET);

    // 4、从本地时间里扣除这些差量,即可以取得UTC时间:
    cal.add(java.util.Calendar.MILLISECOND, -(zoneOffset + dstOffset));

    // 之后调用cal.get(int x)或cal.getTimeInMillis()方法所取得的时间即是UTC标准时间。
    System.out.println("UTC:" + new Date(cal.getTimeInMillis()));

    Calendar calendar1 = Calendar.getInstance();
    TimeZone tztz = TimeZone.getTimeZone("GMT");
    calendar1.setTimeZone(tztz);
    System.out.println(calendar.getTime());
    System.out.println(calendar.getTimeInMillis());

    // SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
    // df.setTimeZone(TimeZone.getTimeZone("UTC"));
    // System.out.println(df.parse("2014-08-23T09:20:05Z").toString());

    SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
    Date t = new Date();
    System.out.println(df1.format(t));
    System.out.println(df1.format(df1.parse("2014-08-27T18:02:59.676Z")) + "***********");
    df1.setTimeZone(TimeZone.getTimeZone("UTC"));
    System.out.println(df1.format(t));
    System.out.println("-----------");
    System.out.println(df1.format(df1.parse("2014-08-27T18:02:59.676Z")) + "***********");
    System.out.println("2014-08-27T18:02:59.676Z");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值