【问题标题】:Creating a GregorianCalendar instance from milliseconds从毫秒创建一个 GregorianCalendar 实例
【发布时间】:2011-05-25 21:57:02
【问题描述】:

我有一定的毫秒时间(在Timestamp 对象中),我想用它来创建GregorianCalendar 对象。我该怎么做?

编辑:我该如何做相反的事情?

【问题讨论】:

    标签: java timestamp gregorian-calendar


    【解决方案1】:

    只需使用您的 java.sql.Timestamp timestamp 获取 GregorianCalendar 和 setTime 的实例:

    Calendar cal=GregorianCalendar.getInstance();
    cal.setTime(timestamp);
    

    编辑: 正如peterh 指出的那样,GregorianCalendar.getInstance() 默认不会提供GregorianCalendar,因为它继承自Calendar.getInstance(),例如在某些安装中可以提供BuddhistCalendar。要确保使用GregorianCalender,请改用new GregorianCalendar()

    【讨论】:

    • 奇怪的是,通过调用GregorianCalendar.getInstance() 似乎无法保证您获得GregorianCalender。由于这个问题是专门关于 GregorianCalendar 的,我认为这个答案有点不正确。 (haaduken的回答更正确)
    【解决方案2】:

    获取 GregorianCalendar 对象而不是 Calendar 对象。就像迈克尔的回答提供的那样,您还可以执行以下操作:

    long timestamp = 1234567890;
    GregorianCalendar cal = new GregorianCalendar();
    cal.setTimeInMillis(timestamp);
    

    这假定一个 UTC 纪元时间戳。

    【讨论】:

      【解决方案3】:
      Timestamp timestamp = new Timestamp(23423434);
      Calendar calendar = GregorianCalendar.getInstance();
      calendar.setTimeInMillis(timestamp.getTime());
      

      【讨论】:

      • 值得注意的是,setTimeInMillis(...) 方法继承自 Calendar 类。此外,在您的答案中格式化代码会很有帮助。 :)
      • 所以如果你在时间戳中设置时间然后获取,为什么要创建时间戳对象呢?打败我
      • @KalpeshSoni “我有一定的毫秒时间(在 Timestamp 对象中)” - OP
      【解决方案4】:

      我相信这是可行的,尽管它可能不是最好的方法:

      import java.sql.Date;
      import java.sql.Timestamp;
      import java.util.GregorianCalendar;
      
      public class TimestampToGregorianCalendar {
      
          /**
           * @param args
           */
          public static void main(String[] args) {
              Timestamp t = new Timestamp(12356342); // replace with existing timestamp
              Date d = new Date(t.getTime());
              Calendar gregorianCalendar = GregorianCalendar.getInstance();
              gregorianCalendar.setTime(d);
          }
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-05-22
        • 2013-05-10
        • 1970-01-01
        • 2013-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多