C#のDateTimeオブジェクトから日付部分のみを取得する方法
C#のDateTimeオブジェクトには日付と時刻の両方の情報が含まれていますが、用途によっては日付部分だけが必要になることがあります。ここでは、DateTimeから日付のみを取り出す代表的な4つの方法を解説します。
主な取得方法
ToShortDateString()メソッド
現在のDateTimeオブジェクトの値を、短い形式の日付文字列に変換します。戻り値は、システムのカルチャ(地域)設定に基づいた短い日付表現の文字列です。
ToLongDateString()メソッド
現在のDateTimeオブジェクトの値を、長い形式(年・月・日をすべて含む詳細な表記)の日付文字列に変換します。こちらもカルチャ設定に応じた表記になります。
ToString()メソッド
ToString()メソッドを使う方法もあります。この方法の最大の利点は、「yyyy/MM/dd」や「dd/MM/yyyy」のように、取得したい日付の書式(フォーマット)を自由に指定できる点です。出力形式を細かく制御したい場合に最適です。
DateTime.Dateプロパティ
DateTime.Dateプロパティを使うと、時刻部分が削除され、日付のみを持つDateTimeオブジェクトが返されます。上記のメソッドとの違いは、結果が文字列に変換されず、DateTime型のまま扱える点です。ただし、時刻部分は「00:00:00」として残る点に注意してください。
拡張メソッドを使用した例
using System;
namespace DemoApplication{
public class Program{
public static void Main(){
var dateTime = DateTime.Now;
Console.WriteLine($"DateTime Value: {dateTime}");
var shortDateValue = dateTime.ToShortDateString();
Console.WriteLine($"Short Date Value: {shortDateValue}");
var longDateValue = dateTime.ToLongDateString();
Console.WriteLine($"Long Date Value: {longDateValue}");
Console.ReadLine();
}
}
}出力結果
上記プログラムの実行結果は以下の通りです。
DateTime Value: 07-08-2020 21:36:46 Short Date Value: 07-08-2020 Long Date Value: 07 August 2020
ToShortDateString()は「07-08-2020」のような短い形式、ToLongDateString()は「07 August 2020」のような詳細な形式で日付が出力されていることがわかります。
DateTime.Dateを使用した例
using System;
namespace DemoApplication{
public class Program{
public static void Main(){
var dateTime = DateTime.Now;
Console.WriteLine($"DateTime Value: {dateTime}");
var dateValue = dateTime.Date;
Console.WriteLine($"Date Value: {dateValue}");
Console.ReadLine();
}
}
}出力結果
上記コードの実行結果は以下の通りです。
DateTime Value: 07-08-2020 21:45:21 Date Value: 07-08-2020 00:00:00
時刻部分が「00:00:00」にリセットされ、日付情報のみが保持されています。文字列ではなくDateTime型として後続の処理に渡したい場合に便利です。
ToString()メソッドを使用した例
using System;
namespace DemoApplication{
public class Program{
public static void Main(){
var dateTime = DateTime.Now;
Console.WriteLine($"DateTime Value: {dateTime}");
var dateValue1 = dateTime.ToString("MM/dd/yyyy");
Console.WriteLine($"Date Value: {dateValue1}");
var dateValue2 = dateTime.ToString("dd/MM/yyyy");
Console.WriteLine($"Date Value: {dateValue2}");
var dateValue3 = dateTime.ToString("d/M/yy");
Console.WriteLine($"Date Value: {dateValue3}");
Console.ReadLine();
}
}
}出力結果
上記コードの実行結果は以下の通りです。
DateTime Value: 07-08-2020 21:58:17 Date Value: 08-07-2020 Date Value: 07-08-2020 Date Value: 7-8-20
このように、ToString()メソッドに書式指定子を渡すことで、「MM/dd/yyyy」「dd/MM/yyyy」「d/M/yy」など、任意の形式で日付を出力できます。
まとめ
文字列として日付が必要な場合はToShortDateString()やToLongDateString()、書式を細かく制御したい場合はToString()、DateTime型のまま日付だけを扱いたい場合はDateTime.Dateプロパティを使うのが適しています。用途に応じて使い分けましょう。
-
Swiftで現在の日付と時刻を取得する方法(UTC・ローカル時刻対応)
日付や時刻の処理は、プログラミング初心者がつまずきやすいポイントのひとつです。ほとんどのアプリでは現在の日付を取得する必要があり、予約管理、ログ記録、期限チェックなど、多くの機能がこの情報に依存しています。 本記事では、Swiftを使ってiOSアプリで現在の日付と時刻を取得する基本的な方法を解説します。具体的には、UTC(協定世界時)の時刻と、デバイスのタイムゾーンに基づく現地時刻の2パターンを紹介します。 UTC(協定世界時)の現在時刻を取得する UTCの時刻を取得したい場合は、Playgroundに以下のコードを貼り付けて実行してください。わずか2行で完了します。 let utcDate
-
【Python】datetimeオブジェクトから月と日だけを抽出して表示する方法
Pythonでdatetimeオブジェクト(日時データ)から「月」と「日」だけを抽出してグラフに表示したい場合、matplotlibが提供するDateFormatter()クラスを利用すると簡単に実現できます。この記事では、実際のコード例とともに具体的な手順をわかりやすく解説します。実装の手順図(figure)のサイズを設定し、サブプロット間および周囲のパディング(余白)を調整します。2次元のサイズ変更可能な表形式データを持つデータフレームdfを作成します。figureとサブプロットの一式を作成します。plot()メソッドを使ってデータフレームをプロットします。X軸のフォーマッターを設定し、月