首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将java日历对象从本地时间转换为UTC

将java日历对象从本地时间转换为UTC
EN

Stack Overflow用户
提问于 2018-06-30 20:41:52
回答 3查看 4K关注 0票数 0

如何将Java对象从本地时间转换为Calendar?这是我尝试过的:

代码语言:javascript
复制
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeZone(TimeZone.getTimeZone("UTC"));
    calendar.setTime(localDateTime.getTime());
    SimpleDateFormat outputFmt = new SimpleDateFormat("MMM dd, yyy h:mm a zz");
    String dateAsString = outputFmt.format(calendar.getTime());
    System.out.println(dateAsString)

时间始终以MT显示,而不是GMT。我希望将UTC格式的日历存储在数据库中(我不关心格式化或显示时间)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-30 20:48:36

您需要在SimpleDateFormat上调用setTimeZone,而不是在Calendar上:

代码语言:javascript
复制
//getting local time 
Calendar calendar = Calendar.getInstance(Locale.getDefault());

SimpleDateFormat outputFmt = new SimpleDateFormat("MMM dd, yyy h:mm a zz");
outputFmt.setTimeZone(TimeZone.getTimeZone("GMT")); //set timezone here

//shows calendar time correctly set    
System.out.println(outputFmt.format(calendar.getTime()));
票数 3
EN

Stack Overflow用户

发布于 2018-06-30 20:50:02

下面是我如何将普通日期转换为UTC。因此,首先将Calendar对象转换为Date对象:

代码语言:javascript
复制
public static String convertToUTC(Date date) {
    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US);
    dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
    return dateFormat.format(date);
}
票数 0
EN

Stack Overflow用户

发布于 2021-05-19 20:44:50

下面我准备了自己的Calender对象,并将时区设置为UTC,然后获取Date对象。一旦你得到了date对象,你就可以得到以毫秒为单位的时间,这是从纪元开始的。

代码语言:javascript
复制
private static Date internalDate(int year, int month, int day, int hour, int minute, int second) {
  Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
  calendar.set(Calendar.YEAR, year);
  calendar.set(Calendar.MONTH, month - 1);
  calendar.set(Calendar.DAY_OF_MONTH, day);
  calendar.set(Calendar.HOUR_OF_DAY, hour);
  calendar.set(Calendar.MINUTE, minute);
  calendar.set(Calendar.SECOND, second);
 // get the Date Object and now your time is in UTC and you can easily convert it to 
 // local or UTC by getting the milli seconds which is date.gerTime(); 
  return calendar.getTime();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51115025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档