タイムスタンプ資料
プログラミング言語のタイムスタンプの比較
プログラミング言語のタイムスタンプの比較
一般的なプログラミング言語にわたるタイムスタンプ操作のクイック リファレンス。
現在のタイムスタンプ
| 言語 | 秒 | ミリ秒 | マイクロ秒 |
|---|---|---|---|
| JavaScript | Math.floor(Date.now() / 1000) | Date.now() | パフォーマンス.now() |
| Python | int(time.time()) | int(time.time() * 1000) | time.time_ns() // 1000 |
| ジャワ | System.currentTimeMillis() / 1000 | System.currentTimeMillis() | Instant.now().getEpochSecond() |
| 行く | time.Now().Unix() | time.Now().UnixMilli() | time.Now().UnixMicro() |
| PHP | 時間() | マイクロタイム(true) * 1000 | microtime(true) * 1000000 |
| ルビー | Time.now.to_i | Time.now.to_f * 1000 | Time.now.to_r |
| C# | DateTimeOffset.UtcNow.ToUnixTimeSeconds() | DateTimeOffset.UtcNow.ToUnixTimeミリ秒() | - |
| スイフト | Date().timeIntervalsince1970 | Int(Date().timeIntervalsince1970 * 1000) | - |
現在までのタイムスタンプ
| 言語 | コード |
|---|---|
| JavaScript | 新しい日付(タイムスタンプ * 1000) |
| Python | datetime.fromtimestamp(タイムスタンプ) |
| ジャワ | Instant.ofEpochSecond(タイムスタンプ) |
| 行く | time.Unix(タイムスタンプ, 0) |
| PHP | date('Y-m-d H:i:s', $timestamp) |
| ルビー | Time.at(タイムスタンプ) |
| C# | DateTimeOffset.FromUnixTimeSeconds(タイムスタンプ) |
| スイフト | Date(timeIntervalsince1970: TimeInterval(タイムスタンプ)) |
日付からタイムスタンプまで
| 言語 | コード |
|---|---|
| JavaScript | Math.floor(date.getTime() / 1000) |
| Python | int(date.timestamp()) |
| ジャワ | date.toEpochSecond(ZoneOffset.UTC) |
| 行く | date.Unix() |
| PHP | strtotime('2024-01-01') |
| ルビー | 日付.to_i |
| C# | ((DateTimeOffset)date).ToUnixTimeSeconds() |
| スイフト | Int(date.timeIntervalsince1970) |
フォーマット
| 言語 | コード |
|---|---|
| JavaScript | date.toISOString() または date.toLocaleString() |
| Python | date.strftime('%Y-%m-%d %H:%M:%S') |
| ジャワ | DateTimeFormatter.ISO_DATE_TIME.format(日付) |
| 行く | date.Format(time.RFC3339) |
| PHP | date('Y-m-d H:i:s', $timestamp) |
| ルビー | date.strftime('%Y-%m-%d %H:%M:%S') |
| C# | date.ToString("yyyy-MM-dd HH:mm:ss") |
| スイフト | dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" |
タイムゾーンの処理
| 言語 | UTC | ローカル | 変換 |
|---|---|---|---|
| JavaScript | new Date().toISOString() | new Date().toLocaleString() | date.toLocaleString('en-US', {timeZone: 'UTC'}) |
| Python | datetime.utcnow() | datetime.now() | date.astimezone(タイムゾーン('UTC')) |
| ジャワ | Instant.now() | LocalDateTime.now() | date.atZone(ZoneId.of("UTC")) |
| 行く | time.Now().UTC() | time.Now() | 日付.In(時間.UTC) |
| PHP | gmdate() | 日付() | date_default_timezone_set('UTC') |
| ルビー | 時刻.now.utc | 時間.今 | Time.now.getutc |
| C# | DateTime.UtcNow | DateTime.Now | TimeZoneInfo.ConvertTimeToUtc(日付) |
| スイフト | Date() (内部的には常に UTC) | 日付() | Calendar.current.dateComponents |
エポックスタート
- すべての言語では Unix エポック: 1970 年 1 月 1 日 00:00:00 UTC を使用します。
- 例外: GPS 時間 は 1980 年 1 月 6 日を使用します
- TAI は 1958 年 1 月 1 日を使用します
精度
- 秒: 最も一般的な、10 桁 (2286 まで)
- ミリ秒: 13 桁、JavaScript のデフォルト
- マイクロ秒: 16 桁
- ナノ秒: 19 桁、一部のシステム
タイムゾーンのストレージ
- JavaScript: Date オブジェクトにタイムゾーンがなく、ブラウザーのタイムゾーンを使用します
- Python: 単純な日時オブジェクトと認識された日時オブジェクト
- Java: インスタント (UTC) と ZonedDateTime (ゾーンあり)
- Go: 時間オブジェクトに関連付けられた場所
- Ruby: 時間オブジェクトにはタイムゾーン オフセットが含まれます
- C#: DateTimeKind (未指定、UTC、ローカル)
- Swift: 日付は常に UTC、カレンダーはゾーンを処理します
ベストプラクティス
- 常に UTC をデータベースに保存
- 現地時間に変換 表示のみ
- API シリアル化には ISO 8601 を使用
- うるう秒の取り扱いは慎重に行ってください (GPS/TAI 対 UTC)
- ユースケースに必要な 精度を考慮する