使用日历和日期获取UTC时间

这个问题在这里已经有了答案:

  • Calendar.getInstance(TimeZone.getTimeZone(“UTC”))没有返回UTC时间5个答案

  • 这个问题已经在这里回答了

    System.out.println(cal_Two.getTime())调用从getTime()返回Date。 它是转换为println字符串的日期,并且转换将在您的情况下使用默认的IST时区。

    您需要明确使用DateFormat.setTimeZone()在所需时区中打印日期。

    TimeZone timeZone = TimeZone.getTimeZone("UTC");
    Calendar calendar = Calendar.getInstance(timeZone);
    SimpleDateFormat simpleDateFormat = 
       new SimpleDateFormat("EE MMM dd HH:mm:ss zzz yyyy", Locale.US);
    simpleDateFormat.setTimeZone(timeZone);
    
    System.out.println("Time zone: " + timeZone.getID());
    System.out.println("default time zone: " + TimeZone.getDefault().getID());
    System.out.println();
    
    System.out.println("UTC:     " + simpleDateFormat.format(calendar.getTime()));
    System.out.println("Default: " + calendar.getTime());
    

    编辑将cal转换为日期

          Calendar cal = Calendar.getInstance();
          int year = cal.get(Calendar.YEAR);
          int month = cal.get(Calendar.MONTH);
          int day = cal.get(Calendar.DATE);
          System.out.println(year);
          Date date = new Date(year - 1900, month, day);  // is same as date = new Date();
    

    只需使用Cal值构建Date对象。 请让我知道,如果有帮助。


    尝试使用日期格式化程序并将时区设置为UTC。

    dateFormatter.setTimeZone(TimeZone.getTimeZone("UTC")); 
    
    链接地址: http://www.djcxy.com/p/18699.html

    上一篇: Getting UTC time with Calendar and Date

    下一篇: what is the best way to specify default value for a date parameter in ireport