public class ExcelDateUtils extends Object
修飾子とタイプ | フィールドと説明 |
---|---|
static long |
MILLISECONDS_19000101
1900-01-01 00:00:00.000の時間(単位はミリ秒)。
|
static long |
MILLISECONDS_19000301
1900-03-01の時間(単位はミリ秒)。
|
static long |
MILLISECONDS_19040101
1904-01-01 00:00:00.000の時間(単位はミリ秒)。
|
static int |
NON_LEAP_DAY
1900年開始の場合、3月1日の経過日数。
|
static int |
OFFSET_DAYS_1900
Javaの基準日(=0)である1970年1月1日に対するExcelの基準日1900年1月0日の日のオフセット(単位は日)。
|
static int |
OFFSET_DAYS_1904
Javaの基準日(=0)である1970年1月1日に対するExcelの基準日1904年1月1日の日のオフセット(単位は日)。
|
static int |
SECONDS_IN_DAYS
24時間の秒数。
|
コンストラクタと説明 |
---|
ExcelDateUtils() |
修飾子とタイプ | メソッドと説明 |
---|---|
static double |
convertExcelNumber(Date value,
boolean startDate1904)
Javaの
Date 型をExcelの内部表現の数値に変換する。 |
static Date |
convertJavaDate(double numValue,
boolean startDate1904)
Excel表現上の数値をJavaの
Date 型(UTC形式)に変換する。 |
static String |
formatDate(Date date)
日時形式をyyyy-MM-dd HH:mm:ss.SSSの書式でフォーマットする。
|
static long |
getExcelZeroDateTime(boolean isStartDate1904)
Excelの日付となる(=数値では0の値)の時の、時間の取得。
|
static Date |
parseDate(String str)
文字列を日時形式をyyyy-MM-dd HH:mm:ss.SSSのパースする。
|
public static final int SECONDS_IN_DAYS
public static final long MILLISECONDS_19000101
Excelは設定により、1900年始まりか1904年始まりか指定できるため、その基準値として利用する。
public static final long MILLISECONDS_19040101
Excelは設定により、1900年始まりか1904年始まりか指定できるため、その基準値として利用する。
public static final long MILLISECONDS_19000301
Excelは1900年始まりの場合、閏日でない1900年2月29日(=3月1日)が存在するため、その基準値として利用する。
public static final int OFFSET_DAYS_1900
ただし、Excelは1900年は1月0日から始まり、実質1899年12月31日となる。
public static final int OFFSET_DAYS_1904
public static final int NON_LEAP_DAY
1900年は閏年ではないが、Excelの場合は閏年扱いのため、 1900年1月~2月の期間(60日23時59分59秒=60.9999)を表現するための定数として利用する。
public static Date convertJavaDate(double numValue, boolean startDate1904)
Date
型(UTC形式)に変換する。
1900年始まりの場合は以下の注意が必要。
numValue
- 変換対象のExcel表現上の数値。startDate1904
- 基準日が1904年始まりかどうか。public static double convertExcelNumber(Date value, boolean startDate1904)
Date
型をExcelの内部表現の数値に変換する。
小数の桁数に関する注意事項。
1900年始まりの場合は以下の注意が必要。
value
- 変換対象のJava表現上の日時。タイムゾーンを排除した(GMT-00:00)日時。startDate1904
- 基準日が1904年始まりかどうか。IllegalArgumentException
- value == nulll.public static String formatDate(Date date)
ただし、タイムゾーンは、標準時間のGMT-00:00で処理する。
date
- フォーマット対象の日時。IllegalArgumentException
- date is null.public static Date parseDate(String str)
ただし、タイムゾーンは、標準時間のGMT-00:00で処理する。
str
- パース対象の文字列IllegalArgumentException
- str is empty.IllegalStateException
- fail parsing.public static long getExcelZeroDateTime(boolean isStartDate1904)
1900年始まりの場合、Excelでは1月0日から始まるため、1899-12-31 00:00:00.000の値を返す。
1904年始まりは、1904-01-01 0:00:00の値を返す。
引数により、1904年始まりの場合の値か選択できる。
isStartDate1904
- 1904年始まりかどうか。Copyright © 2021 mygreen. All rights reserved.