6

Google アプリのスプレッドシートに、「dd/mm/yyyy」形式の日付列と「HH:MM AM/PM」形式の時間列があります。アプリ スクリプトで、これら 2 つの値を日時として結合したいと考えています。これどうやってするの?

例 - 日付: 13/12/2010、時刻: 4:30 PM 次に、「13/12/2010 4:30 PM」のような結合値を日時オブジェクトとして取得したいと考えています。

getYear、getDay JS 関数を使用して、日付と時刻を別々に解析しようとしました。を使用して新しい日付を作成しました

new Date(year, month, day, hours, minutes)

しかし、何らかの理由で、「4:30」という時間は、1899 年 11 月 30 日午前 10:30 のように完全に奇妙な日付として表示されています。年、日、月を正確に抽出できますが、時間と分は抽出できません。

4

1 に答える 1

5

このGoogle Apps フォーラム スレッドで回答を得ました。

スプレッドシートのタイムゾーン設定を変更しても、日付は視覚的に変化しません。たとえば、スプレッドシートに「1/1/10 14:00」と入力してタイムゾーンを別の値に変更しても、日付/時刻は変化しません。新しいタイムゾーンではまだ 14:00 です。

現在、GAS ではエポックは「1970 年 1 月 1 日 0:00:00 GMT+0」であり、タイムゾーンは問題になりません。したがって、エポックは異なり、おそらくタイムゾーンも異なります。これにより、GAS とスプレッドシートの間の運用日が完全に混乱します。GAS エポックをテストするには、 range.setValue( new Date(0) ); を実行します。"

于 2010-10-29T17:37:41.130 に答える