dateutil.java

来自「用于Java 组件和通过Windows COM 对象或Windows DLL 来」· Java 代码 · 共 38 行

JAVA
38
字号
package com.develop.io;

import java.util.*;

public class DateUtil {
  static final int MILLISECONDS_IN_DAY = 1000 * 60 * 60 * 24;

  //Dec 30 1899 is 0 in Win32 date
  //Jan 1 1970 is 0 in Java date
  //difference between the two is 70 years + 2 days 
  //leap years are 1904, 1908, etc. = 17 leaps
  //(365 * 70) + 17 + 2
  static final int SUN_MINUS_MICROSOFT = 25569;
 
  public static long getJavaDate(double date) {
    double javaNormalizedDate = date - SUN_MINUS_MICROSOFT;
    long millis = Math.round(86400000L * javaNormalizedDate);
    Calendar cal = Calendar.getInstance();
    cal.setTime(new Date(millis));
    return millis - cal.get(cal.ZONE_OFFSET) - cal.get(cal.DST_OFFSET);
  }

  public static double getWin32Date(java.util.Date dt) {
    return getWin32Date(dt.getTime());
  }

  public static double getWin32Date(long dt) {
    Date date = new Date(dt);
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    long millis = date.getTime() 
                  + cal.get(cal.ZONE_OFFSET)
                  + cal.get(cal.DST_OFFSET);
    return (double) millis / MILLISECONDS_IN_DAY + SUN_MINUS_MICROSOFT;
  }    

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?