問題タブ [time-t]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2030 参照

c - C で time_t を次の午後 10 時に設定しますか?

time_t 変数を次の日時の午後 10 時に設定したいと考えています。たとえば、午後 11 時だった場合は、time_t を翌日の午後 10 時 (23 時間後) に設定し、午後 5 時だった場合は、午後 10 時 (5 時間後) に設定します。

これを行う方法はいくつか考えられます (次の午後 10 時までの秒数を計算し、その値を加算するなど) が、いずれもかなりハックなアプローチのように感じます。これを達成するための最良の方法は何ですか?

0 投票する
1 に答える
888 参照

c - エポック>LONG_MAXから数秒後に何が起こりますか?

宿題については、たくさんの物を扱うプログラムを書いていtime_tます。オーバーフローがないかチェックしようかと思ったのですが、オーバーフローするとみんな困ってしまうのではないかと思いました。

これについての計画はありますか?エポックからの時間がストレージを超えるとどうなりますか?

0 投票する
0 に答える
1377 参照

c++ - http 日付ヘッダー文字列を time_t に変換する

「Wed, 07 Mar 2012 09:58:26 GMT」という形式で返される http ヘッダー フィールド「Date」を値に変換したいと考えていtime_tます。

http ヘッダーにこのフィールドの標準形式があるかどうかはわかりません。

私はこれを見ました:文字列からの日付/時刻の解析(ブースト?)、しかし、私が言及した形式のファセットを作成できるかどうかわかりません。

また、移植できる機能が必要です。

自分で簡単に解析できましたが、より良い、より迅速で安全な方法があることを願っています。

0 投票する
4 に答える
1366 参照

c++ - Representing the difference between time_t

Why is the difference between two time_ts returned by the difftime( time_t t1, time_t t2) method as a double? I don't see where the precision requirement comes from.

0 投票する
1 に答える
1190 参照

c - HP-UX 11.31(IA64) で 64 ビット time_t をサポートする方法を教えてください。

この HP-UX 11.31(IA64) で long 型と time_t 型が 4 バイト サイズであることを知って驚いています。どういうことなんですか?

私の環境:

私のコード:

time_t を aCC で 64 ビットにする方法を見つけるのを手伝ってくれる人はいますか?

0 投票する
3 に答える
7979 参照

c - strftime() を使用して utc タイムスタンプを取得する

strftime関数を使用して、現在の utc 時刻を文字列にエンコードしようとしています。

これまでのところnowLocal、私のタイムゾーン(CET)で現在の時刻が含まnowUtcれており、utc 時刻が含まれています。違いはtm_gmtoff値に正確に従っています。

次に、エポックからの秒数を取得するために formatstrftime()を呼び出します。"%s"

結果は私には奇妙に思えます。フォーマットは次のように記述されているため、両方のstrftime()呼び出しからまったく同じ文字列を取得することを期待していました。%s

エポックからの秒数、つまり since 1970-01-01 00:00:00 UTC。うるう秒のサポートが利用可能でない限り、うるう秒はカウントされません。

しかし、私は2つの異なる値を得ました:

しかもその差は7200 ( tm_gmtoff) ではなく3600です。誰もそのような行動を説明できますか? それともバグですか?

これを行っている理由は、時間の値をネットワーク経由で転送し、異なるタイム ゾーンにあるターゲット マシンの現在の時間と比較する必要があるためです。ターゲットマシンで私がしたかった:

しかし、私は得ました:

とにかく、現在のタイムゾーンに従って をstrptime()設定します。tm_zoneしかし、timelocal()代わりに使用しても、 12:27:28 CESTではなく11:27:28 CESTtimegm()である必要があるため、正しい値が得られません。このエラーは の異なる結果に関連していますか?strftime()

この後半へのコメントはありますか?

0 投票する
1 に答える
2015 参照

c++ - stat(システムコール)からのmtimeのフォーマット

だから私はLinuxで「find」コマンドを模倣するプログラムを書いています。私はすべての面倒を見てくれましたが、ctime、mtime、atimeから文字列をフォーマットする方法がわかりません。

引数がstructtime_tであることは知っていますが、フォーマット可能な文字列に変換することができません。

私が持っているものの一部は以下の通りです。エラー「エラー:引数「4」の「__time_t」を「consttm」に変換できません」「size_tstrftime(char *、size_t、const char *、const tm *)」が原因で機能しません

理想的には、次のようなものが必要です。

ここで、sbはstat構造体です。次の形式で印刷する必要があります:HH:MM:SS-MM / DD / YY

答えは簡単なことだと思いますが、理解できません。

0 投票する
4 に答える
2208 参照

c++ - time_tが他のtime_tの間にあり、ある程度の誤差があるかどうかを確認します

timeAとtimeBの2つのtime_t変数があります。

私がやりたいのは、timeAがtimeBと同じかどうかを確認することです。ただし、場合によっては完全に同じではなく、2つの間に1秒または2秒の差がある可能性があることを知っているので、実際に確認したいのは次のとおりです。

そうすることは可能ですか?

1つのオプションは、time_tを使用せず、代わりにtimeBをtm構造体として保持し、比較の直前に2秒を減算してtime_t timeBminusを作成し、次に4秒を加算してtime_ttimeBplusを作成することだと思います。問題は、数百万のtimeAとtimeBのペアを比較し、可能な限りシンプルかつ高速に保ちたいということです。

どうすればいいですか?

0 投票する
7 に答える
22984 参照

c++ - 日付と時刻の数値をtime_tに変換し、タイムゾーンを指定します

私は次の整数を持っています:

それらの値は、2012それぞれ、、、、、、です。アプリケーションの別の場所で「UTC」を選択した場合は「2012/06/2712:47:53 UTC」の日時を表し、「2012/06/2712:47:53AEST」を選択した場合は「アプリケーションのどこかで「AEST」を選択しました。0627124753

これをに変換したいのですが、これtime_tを行うために現在使用しているコードは次のとおりです。

だから私はとを使用してtm structmktimeますが、これは常に私のローカルタイムゾーンを想定しているため、うまく機能していません。

これを行う正しい方法は何ですか?

以下は私がこれまでに思いついた解決策です。基本的に、次の3つのいずれかを実行します。

  1. UNIXの場合は、単に使用しますtimegm
  2. UNIXでない場合
    1. どちらか、UTCエポックとローカルエポックの違いをオフセットとして使用して計算を行います
      • 予約:数学が正しくない可能性があります
    2. または、「TZ」環境変数を一時的にUTCに設定します
      • 予約:このコードをマルチスレッド化する必要がある場合は、トリップします

NBStringBuilderは内部クラスであり、この質問の目的には関係ありません。

より詳しい情報:

これは、ブーストなどを使用して簡単に実行できることを私は知っています。しかし、これはオプションではありません。数学的に、またはacまたはc ++標準関数、あるいはそれらの組み合わせを使用して実行する必要があります。

timegmこの問題は解決しているように見えますが、C/POSIX標準の一部ではないようです。#ifdef $PLATFORMこのコードは現在、複数のプラットフォーム(Linux、OSX、Windows、iOS、Android(NDK))でコンパイルされているため、ソリューションにタイプのものが含まれている場合でも、これらすべてのプラットフォームで機能させる方法を見つける必要があります。

0 投票する
2 に答える
3000 参照

c - 32 ビットの time_t 値を 64 ビットの time_t に変換する方法

私は組み込みシステムに取り組んでいます。私たちのプラットフォームは 32 ビットなので、time_tサイズは 32 ビットです。

char今のところ、構造体を配列として Windows 7 コンピューターに送信したいと考えています。私の構造体のフィールドの1つはですtime_t。構造を変更することはできません。

したがって、時間値を 32 ビット変数で Windows マシンに送信する必要があり、char 配列が到着したら、32 ビットの unsigned int 値を 64 ビットに変換する必要がありますtime_t

32 ビットは 1970 年から始まり、64 ビットは 1600 年から始まるtime_tため、32ビット整数を 64 ビットに直接変換することはできないと思います。time_t

では、変換する方法はありますか?