JavaScriptで日付から秒・ミリ秒を削除し、ISO文字列に変換する方法
はじめに
JavaScriptでは、日時データから秒やミリ秒の情報を取り除き、整形されたISO形式の文字列として扱いたいケースがあります。たとえば、分単位までの日時をAPIに送信したい場合などが該当します。
本記事では、setSeconds()メソッドとtoISOString()メソッドを組み合わせて、この処理を実現する手順を解説します。
手順1:現在の日付を取得する
まず、Dateオブジェクトを使って現在の日付を取得しましょう。
var currentDate = new Date();
console.log("現在の日付は以下の通りです=" + currentDate);
手順2:setSeconds()で秒とミリ秒をリセットする
setSeconds()メソッドは、第2引数にミリ秒を指定できます。両方に0を渡すことで、秒とミリ秒をまとめてリセット可能です。
currentDate.setSeconds(0, 0);
第1引数が「秒」、第2引数が「ミリ秒」に対応しています。このように引数を2つ指定すれば、1回の呼び出しで両方を0にできるのがポイントです。
手順3:toISOString()でISO文字列に変換する
toISOString()メソッドを使うと、日付を「YYYY-MM-DDTHH:mm:ss.sssZ」というISO 8601形式の文字列に変換できます。
currentDate.toISOString();
完全なコード例
ここまでの手順をまとめた完全なコードは以下の通りです。
var currentDate = new Date();
console.log("現在の日付は以下の通りです=" + currentDate);
currentDate.setSeconds(0, 0);
console.log("秒を削除した後の新しい日付は以下の通りです=");
console.log(currentDate.toISOString());
実行方法
上記のプログラムを実行するには、Node.js環境で次のコマンドを使用します。ここではファイル名を demo143.js としています。
node demo143.js
実行結果
実行すると、以下のような出力が得られます。
PS C:\Users\Amit\JavaScript-code> node demo143.js 現在の日付は以下の通りです=Sat Aug 01 2020 18:20:09 GMT+0530 (India Standard Time) 秒を削除した後の新しい日付は以下の通りです= 2020-08-01T12:50:00.000Z
結果の解説
出力を比較すると、元の日時は「18:20:09」と秒が09だったのに対し、処理後のISO文字列では秒とミリ秒が「00.000」になっていることがわかります。これにより、分単位までの整った日時データを取得できました。
なお注意点として、toISOString()は常にUTC(協定世界時)基準で文字列を出力します。上の例でも、現地時刻の18:20がUTCの12:50として出力されています。ローカルタイムゾーンのまま文字列化したい場合は、別途フォーマット処理が必要になるので覚えておきましょう。
-
【JavaScript入門】文字列を繰り返す方法 – Array()とjoin()を組み合わせた実装例
JavaScriptである文字列を指定した回数だけ繰り返して表示したい場合、Array()コンストラクタとjoin()メソッドを組み合わせることで簡単に実現できます。 仕組みの解説 new Array(value + 1)は、要素数が「value + 1」個の空の配列を生成します。この空の配列に対してjoin(this)を実行すると、各要素の間に区切り文字として自分自身(対象の文字列)が挿入されます。要素が value + 1 個あれば間は value 個できるため、結果的に元の文字列が value 回繰り返されるという仕組みです。 サンプルコード 以下に実際のコード例を示します。 <!
-
AndroidでISO 8601形式の日付文字列をDateオブジェクトに変換する方法
この記事では、Androidアプリ開発において、ISO 8601形式の日付・時刻文字列をDateオブジェクトに変換する方法を、実際のサンプルコードとともにステップごとに解説します。 手順1:新規プロジェクトの作成 まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目を入力してプロジェクトを生成してください。 手順2:レイアウトファイル(activity_main.xml)の編集 res/layout/activity_main.xmlに以下のコードを記述します。ここでは、画面中央に日付を表示するためのT