Recursos de timestamp
Comparação de carimbo de data/hora de linguagem de programação
Comparação de carimbo de data/hora de linguagem de programação
Referência rápida para operações de carimbo de data/hora em linguagens de programação populares.
Carimbo de data/hora atual
| Idioma | Segundos | Milissegundos | Microssegundos |
|---|---|---|---|
| JavaScript | Math.floor(Data.now() / 1000) | Data.agora() | desempenho.now() |
| Píton | int(tempo.tempo()) | int(tempo.time() * 1000) | time.time_ns() // 1000 |
| Java | System.currentTimeMillis()/1000 | System.currentTimeMillis() | Instant.now().getEpochSecond() |
| Vá | time.Now().Unix() | time.Now().UnixMilli() | time.Now().UnixMicro() |
| PHP | tempo() | microtempo(verdadeiro) * 1000 | microtempo(verdadeiro) * 1000000 |
| Rubi | Hora.agora.to_i | Hora.agora.to_f * 1000 | Hora.agora.to_r |
| C# | DateTimeOffset.UtcNow.ToUnixTimeSeconds() | DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() | - |
| Rápido | Data().timeIntervalSince1970 | Int(Data().timeIntervalSince1970 * 1000) | - |
Carimbo de data/hora até a data
| Idioma | Código |
|---|---|
| JavaScript | nova data(timestamp * 1000) |
| Píton | datetime.fromtimestamp(timestamp) |
| Java | Instant.ofEpochSecond(timestamp) |
| Vá | tempo.Unix(timestamp, 0) |
| PHP | data('Ymd H:i:s', $timestamp) |
| Rubi | Hora.at(carimbo de data/hora) |
| C# | DateTimeOffset.FromUnixTimeSeconds(timestamp) |
| Rápido | Data(timeIntervalDesde 1970: TimeInterval(timestamp)) |
Data para carimbo de data/hora
| Idioma | Código |
|---|---|
| JavaScript | Math.floor(date.getTime() / 1000) |
| Píton | int(data.timestamp()) |
| Java | date.toEpochSecond(ZoneOffset.UTC) |
| Vá | data.Unix() |
| PHP | strtotime('2024-01-01') |
| Rubi | data.para_i |
| C# | ((DateTimeOffset)data).ToUnixTimeSeconds() |
| Rápido | Int(date.timeIntervalSince1970) |
Formatação
| Idioma | Código |
|---|---|
| JavaScript | date.toISOString() ou date.toLocaleString() |
| Píton | date.strftime('%Y-%m-%d %H:%M:%S') |
| Java | DateTimeFormatter.ISO_DATE_TIME.format(data) |
| Vá | data.Format(hora.RFC3339) |
| PHP | data('Ymd H:i:s', $timestamp) |
| Rubi | date.strftime('%Y-%m-%d %H:%M:%S') |
| C# | date.ToString("aaaa-MM-dd HH:mm:ss") |
| Rápido | dateFormatter.dateFormat = "aaaa-MM-dd HH:mm:ss" |
Tratamento de fuso horário
| Idioma | UTC | Locais | Converter |
|---|---|---|---|
| JavaScript | nova Data().toISOString() | nova Data().toLocaleString() | date.toLocaleString('en-US', {timeZone: 'UTC'}) |
| Píton | datetime.utcnow() | datetime.now() | date.astimezone(timezone('UTC')) |
| Java | Instant.now() | LocalDateTime.now() | date.atZone(ZoneId.of("UTC")) |
| Vá | hora.Agora().UTC() | tempo.Agora() | data.In(hora.UTC) |
| PHP | gmdata() | data() | date_default_timezone_set('UTC') |
| Rubi | Hora.now.utc | Hora.agora | Time.now.getutc |
| C# | DateTime.UtcNow | DateTime.Agora | TimeZoneInfo.ConvertTimeToUtc(data) |
| Rápido | Date() (sempre UTC internamente) | Data() | Calendar.current.dateComponents |
Início da Época
- Todos os idiomas usam época Unix: 1º de janeiro de 1970 00:00:00 UTC
- Exceção: horário GPS usa 6 de janeiro de 1980
- TAI usa 1º de janeiro de 1958
Precisão
- Segundos: Mais comum, 10 dígitos (até 2286)
- Milisegundos: 13 dígitos, padrão JavaScript
- Microssegundos: 16 dígitos
- Nanossegundos: 19 dígitos, alguns sistemas
Armazenamento de fuso horário
- JavaScript: Sem fuso horário no objeto Date, usa o fuso horário do navegador
- Python: objetos de data e hora ingênuos versus conscientes
- Java: Instantâneo (UTC) vs ZonedDateTime (com zona)
- Go: Local anexado ao objeto Time
- Ruby: objeto de tempo inclui deslocamento de fuso horário
- C#: DateTimeKind (não especificado, Utc, Local)
- Swift: a data é sempre UTC, o calendário lida com zonas
Melhores práticas
- Sempre armazene UTC em bancos de dados
- Converter para horário local apenas para exibição
- Use ISO 8601 para serialização de API
- Trate dos segundos bissextos com cuidado (GPS/TAI vs UTC)
- Considere a precisão necessária para seu caso de uso
Recursos relacionados
- Conversor de carimbo de data/hora Unix
- Conversor ISO 8601
- [Gerador de trecho de código](/gerador de trecho de código)