Googleスプレッドシートに日付を追加しようとしました。日付を追加するには、日付をエポックに変換します。スプレッドシートのエポックのためにGoogle SpreadSheetのJavaエポック日付
Googleシートは、一般的にスプレッドシートで使用されているエポック日付の形式を使用しています。値の全数部分(小数点の左側)は、1899年12月30日以降の日数をカウントします。分数部分(小数点の右側)は、時間を1日の小数部としてカウントします。たとえば、正午の1900年1月1日は、正午が半日なので、1899年12月30日の2日後と.5のため2.5、2となります。 1900年2月1日午後3時は33.625となります。
Joda時間APIを使用して計算しています(JDKバージョン1.7)。
私たちは以下のコードを使用しています。
public static double getEpochDate(Date inputDate)
{
MutableDateTime epoch = new MutableDateTime();
epoch.setTime(0, 0, 0, 0);
epoch.setDate(1899,12,30); //Set to Epoch time
System.out.println(epoch);
DateTime now = new DateTime(inputDate);
Days days = Days.daysBetween(epoch, now);
return Double.valueOf(days.getDays());
}
我々は
(あなたは ...私は強く
Mutable*
種類を回避助言する。そして、唯一の関与の時間帯が本当にありますときDateTime
を使用したい、ジョダ時間を使いたいんときは)非常に迅速な応答をありがとうございました。 -2209161600000Lからマイナス記号を削除するだけで、すべての計算が完璧に機能します。日付は1899年12月30日から計算されるので、Unix Epochから追加するだけです。 –@ GauravAshara:それを加算するのではなく定数を減算する...どちらの方法でも動作します。私はそれに応じて答えを変更しました。 –
:もちろんです。ありがとう –