.NET TIPS

コンピュータの現在時刻を設定するには?[C#、VB]

デジタルアドバンテージ 遠藤 孝信
2009/04/09

 複数のコンピュータ(PC)でシステムを構成する場合、バッチ処理やログ取得などの観点から、各コンピュータに設定されている現在時刻を正確に一致させておく必要がある。

 本稿では、時刻サーバや、ある特定の(サーバ)コンピュータなどから時刻を取得した際に、これをコンピュータに設定する方法について紹介する。

VB用のDateAndTimeモジュールの活用

 .NET Frameworkのクラス・ライブラリでは、日付や時刻に関する機能は主にDateTime構造体(System名前空間)にまとめられているが、現在時刻を設定するという機能は、これには含まれていない。

 このため、現在時刻を設定するには、Win32 APIであるSetLocalTime関数SetSystemTime関数を直接呼び出すというのが主立った方法であるが、Visual Basic用のDateAndTimeモジュールを使っても設定可能であり、C#でもこちらを使う方が便利だ。

 DateAndTimeモジュールは、正確には、DateAndTimeクラス(Microsoft.VisualBasic名前空間)であり、Microsoft.VisualBasic.dllに含まれている。

 このクラスは、時刻を取得/設定するための「TimeOfDayプロパティ」と、日付を取得/設定するための「Todayプロパティ」を持っている。この2つのプロパティはどちらも静的プロパティであるため、インスタンスを作成せずに呼び出すことができる。以下にその記述例を示す。

// settime.cs

using System;

class SetTime {
  static void Main() {

    // 2038年1月19日12時14分8秒
    DateTime dt = new DateTime(2038, 1, 19, 12, 14, 8);

    Microsoft.VisualBasic.DateAndTime.TimeOfDay = dt; // 時刻設定
    Microsoft.VisualBasic.DateAndTime.Today = dt; // 日付設定
  }
}

// コンパイル方法:csc /r:Microsoft.VisualBasic.dll settime.cs
' settime.cs

Imports System

Class SetTime
  Shared Sub Main

    ' 2038年1月19日12時14分8秒
    Dim dt As New DateTime(2038, 1, 19, 12, 14, 8)

    DateAndTime.TimeOfDay = dt ' 時刻設定
    DateAndTime.Today = dt ' 日付設定

  End Sub
End Class

' コンパイル方法:vbc settime.vb
現在の日時を設定するサンプル・プログラム(上:C#、下:VB)

 このサンプル・プログラムでは、現在の日時を「2038年1月19日12時14分8秒」に設定する。このプログラムを実行すると、すぐにWindows OSの現在日時が変更されるため、実際に試す場合には注意が必要だ。End of Article

カテゴリ:クラス・ライブラリ 処理対象:日付と時刻
使用ライブラリ:DateAndTimeクラス(Microsoft.VisualBasic名前空間)
使用ライブラリ:DateTimeクラス(System名前空間)

この記事と関連性の高い別の.NET TIPS
UTC(世界協定時)を取得するには?
サマータイムを処理するには?[.NET 3.5、C#/VB]
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間