2017-08-23 24 views
0

日時モジュールをインポートし、class datetime.datetimeのさまざまな関数を使用して、デプロイメントのための書式設定と日付計算を行うことができます。datetime.datetime.now()はインターネット接続なしでどのように動作しますか?

たとえば、datetime.datetime.now()は今日の日付を返します。

enter image description here

しかし、今日、私はそこに私のコンピュータには、インターネット接続がなかったが、それでも、それは今日の日付を出力し、このプログラムを実行します。

だから、どのようにdatetime.datetime.now()が適切な日付を返すことができますか?アルゴリズムは24時間後に自動的にインクリメントされますか?

+0

なぜコードは、日付と時刻のためにいくつかの他のマシンを求めるだろうか? –

+0

インターネットに接続していないと、コンピュータはどのように知っていますか? –

+3

内部に時計がありますか? –

答えて

5

tl; dr datetime.datetime.now()は、コンピュータに内蔵された時計を使用します。

コンピュータは、インターネットが存在していた時間よりかなり長い時間、かなり正確な時間を保つことができました。

例えば、PCにはreal-time clock(RTC)というものがあります。バッテリー駆動式で、コンピュータの電源が切れても時間を保つことができます。

興味深いことに、確実に動作するために、一部の分散アルゴリズムrequire very accurate clocksがあります。要求される精度は、単純なオシレータベースのクロックが提供できるものをはるかに上回ります。いくつかのGPSクロックが10のために13マイクロ秒で実行した結果、Googleのような企業が自社のデータセンターにGPSatomicクロックを動作させる

(とさえも例えば、示されたように、潜在的な問題がないわけではない、on 26 January 2017、時間)。

データセンターがインターネットに接続されているにもかかわらず、GPSと原子時計のどちらも動作するためにインターネット接続を必要としません。さらに、someoneは、そのインターネット時間インフラストラクチャをすべて稼働させておく必要があります...誰もが自分の時間を "インターネットから"外すことはできません。 ;)

ここでは、コンピュータネットワークを介して時間を配布することになっているので、そのための主なプロトコルはNTP (Network Time Protocol) and PTP (Precision Time Protocol)です。

+0

また、ローカル時刻をリモート時刻サーバーと同期できるNTPサービスも紹介します。 – SirWojtek

1

datetime.datetime.now()のドキュメントには、インターネットから受信した時刻は記載されていません。

現在のローカル日付と時刻を返します。オプションの引数tzが で指定されていない場合、これはtoday()と似ていますが、可能であれば は time.time()タイムスタンプを通過するよりも精度が高くなります(たとえば、これは可能かもしれませんCのgettimeofday()関数を提供するプラットフォーム )。

tzがNoneでない場合は、tzinfoサブクラスのインスタンスでなければなりません。 現在の日付と時刻はtzのタイムゾーンに変換されます。この の場合、結果は tz.fromutc(datetime.utcnow()。replace(tzinfo = tz))と等価です。 today()、 utcnow()も参照してください。

datetimeは、たとえばウィンドウを実行しているときにウィンドウから時刻を変更しようとすると、変更した時刻が表示されます。

は、そのドキュメントをチェック:お使いのコンピュータがそれを知っているときhttps://docs.python.org/2/library/datetime.html

+1

これは、「現地時間」とは異なります。それは、「コンピュータのタイムゾーンで」、「外部のソースに照会せずに」という意味ではありません。 http://www.dictionary.com/browse/local-time – NPE

+0

ご意見ありがとうございます。 –

関連する問題