まずは、ローカル日付をJavascriptでUTCに変換する方法を知っています。これはその複製ではありません。JavaScriptの日付をUTCに変換します(すでにUTCの場合は変更しないでください)
私は日付がUTCに変換される関数を取得しようとしていますが、まだ入力されていない場合、入力がUTCかどうかを制御できません。私はJavascriptプラグインを使用することはできません。
通常の解決策は、現地の日付をUTCに解析するだけですが、すでにUTCになっている日付を解析することです。は、すでにUTCの日付を間違って変更する奇妙な動作を出力します。
私は以下の関数例を持っています。でも、UTCの日付はタイムゾーンのオフセットを持っていることを
function temp() {
var utc = new Date(Date.UTC(2017, 1, 10, 10, 10, 0));
var local = new Date(2017, 1, 10, 10, 10, 0);
var utc2 = new Date(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate(), utc.getUTCHours(), utc.getUTCMinutes(), utc.getUTCSeconds());
var local2 = new Date(local.getUTCFullYear(), local.getUTCMonth(), local.getUTCDate(), local.getUTCHours(), local.getUTCMinutes(), local.getUTCSeconds());
var utc3 = new Date(utc.getTime() + utc.getTimezoneOffset()*60*1000);
var local3 = new Date(local.getTime() + local.getTimezoneOffset()*60*1000);
Logger.log("Timezone offset: UTC=" + utc.getTimezoneOffset() + " Local=" + local.getTimezoneOffset());
Logger.log("UTC: " + utc.getTime() + " -> UTC2(" + utc2.getTime() + ") or UTC3(" + utc3.getTime() +")");
Logger.log("Local: " + local.getTime() + " -> UTC2(" + local2.getTime() + ") or UTC3(" + local3.getTime() +")");
}
戻り
Timezone offset: UTC=420 Local=420
UTC: 1486721400000 -> UTC2(1486746600000) or UTC3(1486746600000)
Local: 1486746600000 -> UTC2(1486771800000) or UTC3(1486771800000)
注意。そして、現地の日付をUTCに変換する両方の方法は、すでにUTCの日付を間違って変更しています。
ありがとうございました。
ECMAScript Dateオブジェクトについて言及するとき、「*私はローカル日付をJavascript *でUTCに変換する方法を知っています」というフレーズは意味をなさない。 Javascriptの日付は常に** UTCですが、UTCに変換することはできません。あなたが解析したい文字列を持っているなら、それは別の話です。しかし、あなたの質問には解析がありません。 – RobG
"* ... UTC日付でさえタイムゾーンオフセット*"があります。日付にはタイムゾーンオフセットがありません。 * getTimezoneOffset *メソッドは、ホストシステムからのオフセットを取得します。Dateインスタンスとは何の関係もありません。 – RobG