回答:
この式を使用して、IFTTTが出力する日時値を便利な形式に変換します。
=VALUE(SUBSTITUTE(A1, " at ", " "))
ここで、A1は日付文字列を含むセルです
これにより、「日付時刻」としてフォーマットできる10進数が得られます。
TIMEVALUE
式は、新しいGoogleスプレッドシートの中に存在しています。
DATEVALUE
ですか?
DATEVALUE
式は両方のバージョンに存在します。
次のカスタム関数は、文字列の日付表記を日付表記に変換します。
function myDate(range) {
var output = [];
for(var i=0, iLen=range.length; i<iLen; i++) {
var rSplit = range[i][0].split(" "), corr = 0;
if(rSplit[4].substring(5,7) == "PM") {
corr = 10;
}
var month = parseInt(new Date(Date.parse(rSplit[0]+"1,2013")).getMonth());
var day = parseInt(rSplit[1].replace(/,/g, ""));
var year = parseInt(rSplit[2]);
var hour = parseInt(rSplit[4].substring(0,2))+corr;
var min = parseInt(rSplit[4].substring(3,5),10);
var nDate = new Date(year, month, day, hour, min);
output.push([nDate]);
}
return output;
}
を考慮して修正されますAM/PM
。の修正はありませんGMT
。Tools
スプレッドシートのメニューからこのスクリプトを追加し、を選択しますScript editor
。スクリプトを保存すると、準備が整います。
myDate(A1:A4)
サンプルファイルを作成しました:文字列の日付
corr
等しくなければならない12
編集は、私はそれを変更傾ける6文字未満になるようしかし
11:09PM
(年に関係なく)いつも戻ってくることに気づきました1/1/1970 11:00:00
。たとえば、August 23, 2010 at 11:09PM
返品の1/1/1970 11:00:00
理由は何かわかりますか?
parseInt(text, 10)
ます。を強制的に小数にしなければなりませんでした。corr
設定されcorr=10
、これは、同じ時間を得られますので。異なるタイムゾーンは考慮していません。
parseInt()
、javascriptと同じ機能parseInt()
です。GoogleマクロはJavaScriptを使用しますか?
表示形式スクリプトの1つを使用することもできます。これにより、基になる数値が通常の表示形式と同じに保たれるため、日付/時刻の数値計算が破損することはありません。
したがって、スクリプトは「フォーマット」を検索し、数値と日付のいずれかを取得します。使用されるフォーマットは、= Text(、 "")バリエーションと同じですが、シートを変換する必要はありません。
MMMM d、yyyy at h:mma
ために:
2010年8月23日午後11時1分
その他のフォーマットオプションについては、http://msdn.microsoft.com/en-us/library/8kb3ddd4(v = vs.110).aspxを参照してください。
Google Drive
には組み込みのScript Editor
(Tools
-Script Editor
)があり、カスタムスクリプトを記述して必要な操作を実行できます。StackOverflow
行き詰まったら質問を投稿できます。