目的は、実際の時間でint(またはlong)を返す関数です。 私はそのためにlocaltimeを文字列に書き、これをatoi/atolとint/longに変換しようとします。しかし、どういうわけか私は期待される結果を得られない。私が試した文字列をstrftimeからint/longに変換する
もの:
- 私は長い間に、最初のint型から切り替えます。
- 私の文字列のサイズを変更しました。必要な15バイトの代わりに7にリサイズすると、少なくとも文字列の日付部分が変換されます。しかし、私はそれがすべて必要です。
long generate_time() { time_t time1; time(&time1); char time_str[15]; long act_time; strftime(time_str, 15, "%Y%m%d%H%M%S", localtime(&time1)); printf("Actual time: %s\n", time_str); act_time = atol(time_str); printf("Transformed time: %d\n", act_time); return act_time; }
応答をもたらす:
実際の時間:20170407091221 変身時間:私はこれを願っています1240669205
私は、次のコードを持っています整理するのは簡単ですし、事前にお手伝いいただきありがとうございます!
が必要なものを行うために
unit64_t
を使用することができます。あなたが書いたことを理解すれば、ユーザーはあなたをより良く助けることができます... – LPsタイムスタンプ形式で時間を戻したいですか?整数値として20170407091221を返すことは意味をなさない。 –
それを指摘していただきありがとうございます。私はそれを変更しました。 – Mathias