Collectez et stockez des horodatages à la précision de la milliseconde, de la microseconde ou de la nanoseconde en activant la prise en charge des nanosecondes dans une configuration de collecte Logtail et en ajoutant un plug-in d'analyse temporelle. L'heure collectée est divisée en deux champs : un horodatage à la précision de la seconde, __time__, et un décalage en nanosecondes, __time_ns_part__, ce qui permet un tri et une analyse des journaux à haute précision.
Cas d'utilisation
Dans le traçage distribué, le trading à haute fréquence, le profilage des performances et d'autres scénarios nécessitant un ordre strict des événements, la précision temporelle à la seconde est souvent insuffisante. Les journaux dans ces environnements contiennent généralement des horodatages avec une résolution en millisecondes, microsecondes ou nanosecondes. Logtail peut collecter, stocker et analyser avec précision ces informations temporelles à haute précision afin de préserver l'intégrité chronologique de votre analyse des journaux.
Fonctionnement
LoongCollector (Logtail) collecte des horodatages à la précision de la nanoseconde en stockant un décalage en nanosecondes aux côtés de l'horodatage standard à la précision de la seconde. Cela maintient la compatibilité avec les systèmes temporels existants basés sur les secondes tout en permettant un tri à haute précision.
Le flux de travail principal est le suivant :
Activer la prise en charge des nanosecondes : Dans les paramètres avancés d'une configuration de collecte Logtail, activez le traitement temporel à haute précision en définissant
{ "EnableTimestampNanosecond": true }. Cette fonctionnalité s'applique uniquement à Logtail 1.8.0 et versions ultérieures dans les environnements Linux.Analyser les journaux : Utilisez des processeurs, tels qu'un processeur de délimiteur, JSON ou d'expression régulière, pour extraire la chaîne contenant l'horodatage à haute précision du journal brut.
Convertir l'heure : Le processeur d'analyse temporelle convertit la chaîne temporelle en un format d'heure standard.
-
Stocker l'heure : Simple Log Service (SLS) divise l'heure en deux champs pour le stockage :
__time__: Un horodatage Unix standard (entier long) en secondes.__time_ns_part__: La partie nanoseconde (entier long). La plage de valeurs va de 0 à 999 999 999.
Requête et analyse : Effectuez une analyse chronologique stricte des journaux en triant sur une combinaison des champs
__time__et__time_ns_part__.
Procédure
La procédure suivante utilise un journal JSON avec un horodatage à la précision de la nanoseconde comme exemple, couvrant la collecte des journaux, l'analyse, la configuration des index et l'analyse.
Étape 1 : Créer un projet et un Logstore
Avant de collecter des journaux, vous devez créer un projet et un Logstore.
Projet : Une unité de gestion des ressources dans Simple Log Service (SLS), utilisée pour isoler et gérer les journaux pour différents projets ou services métier.
Logstore : Une unité de stockage de journaux.
Si vous avez déjà créé un projet et un Logstore, ignorez cette étape et passez à Étape 2 : Configurer un groupe de machines et installer LoongCollector.
Connectez-vous à la console Simple Log Service.
-
Cliquez sur Create Project et configurez les paramètres suivants :
Region : Sélectionnez la région où se trouvent vos sources de journaux. Ce paramètre ne peut pas être modifié après la création du projet.
Project Name : Saisissez un nom globalement unique au sein d'Alibaba Cloud. Ce nom ne peut pas être modifié après la création.
Conservez les paramètres par défaut pour les autres options et cliquez sur Create. Pour plus d'informations sur les autres paramètres, consultez Gérer un projet.
Cliquez sur le nom du projet pour accéder au projet cible.
Dans le volet de navigation de gauche, choisissez
et cliquez sur +.-
Sur la page Create Logstore, effectuez les configurations principales suivantes :
Logstore Name : Définissez un nom unique au sein du projet. Ce nom ne peut pas être modifié après la création.
Logstore Type : Sélectionnez Standard ou Query en fonction de la comparaison des fonctionnalités.
-
Billing Mode :
Pay-by-feature : Ce mode vous facture pour les ressources individuelles, telles que le stockage, les index et les opérations de lecture/écriture. Il convient aux cas d'utilisation à petite échelle ou lorsque l'utilisation des fonctionnalités est incertaine.
Pay-by-ingested-data : Ce mode vous facture uniquement le volume de données brutes écrites. Il inclut une période de stockage gratuite de 30 jours et des fonctionnalités gratuites, telles que la transformation et la diffusion des données. Ce modèle de coût simple est idéal pour les cas d'utilisation où la période de stockage est d'environ 30 jours ou lorsque le pipeline de traitement des données est complexe.
Data Retention Period : Définissez le nombre de jours de conservation des journaux. La valeur peut varier de 1 à 3 650. Une valeur de 3 650 spécifie un stockage permanent. La valeur par défaut est de 30 jours.
Conservez les paramètres par défaut pour les autres options et cliquez sur OK. Pour plus d'informations sur les autres paramètres, consultez Gérer un Logstore.
Étape 2 : Configurer un groupe de machines et installer LoongCollector
Après avoir créé un projet et un Logstore avec succès, installez LoongCollector sur un serveur et ajoutez le serveur à un groupe de machines. Cette rubrique fournit un exemple d'installation de LoongCollector sur une instance ECS où l'instance ECS et le projet Simple Log Service (SLS) se trouvent sous le même compte Alibaba Cloud et la même région. Si l'instance ECS et le projet ne sont pas dans le même compte ou la même région, ou si vous utilisez un serveur autogéré, consultez Installer un collecteur pour une installation manuelle.
Cette fonctionnalité est prise en charge uniquement par LoongCollector (Logtail) 1.8.0 ou version ultérieure sur les systèmes Linux. Elle n'a aucun effet sur les systèmes Windows.
Cliquez sur le projet cible. Sur la page Logstores
Tous les modèles de journaux texte ne diffèrent que par leurs processeurs d'analyse. Le reste du processus de configuration est identique et tous les paramètres peuvent être modifiés ultérieurement. |
Procédure :
-
Sur la page Machine Group Configurations, configurez les paramètres suivants :
Scenario : Servers
Installation Environment : ECS
-
Configurer le groupe de machines : En fonction de l'état d'installation de LoongCollector et du groupe de machines du serveur cible, effectuez l'action correspondante :
Si LoongCollector est déjà installé et fait partie d'un groupe de machines, sélectionnez ce groupe dans la liste Source Machine Group et ajoutez-le à la liste Applied Machine Group. Vous n'avez pas besoin de recréer le groupe.
-
Si LoongCollector n'est pas installé, cliquez sur Create Machine Group :
Les étapes suivantes vous guident tout au long de l'installation automatique de LoongCollector et de la création d'un nouveau groupe de machines.
Le système répertorie automatiquement les instances ECS situées dans la même région que le projet. Sélectionnez une ou plusieurs instances à partir desquelles vous souhaitez collecter des journaux.
Cliquez sur Install and Create Machine Group. Le système installe automatiquement LoongCollector sur les instances ECS sélectionnées.
Configurez un Name pour le groupe de machines et cliquez sur OK.
RemarqueSi l'installation échoue ou reste en attente, vérifiez si l'instance ECS et le projet se trouvent dans la même région.
Pour ajouter un serveur avec LoongCollector déjà installé à un groupe de machines existant, consultez Comment ajouter un serveur à un groupe de machines existant ? dans la FAQ.
Étape 3 : Créer une configuration de collecte
Configuration via la console
Après avoir installé LoongCollector et configuré le groupe de machines, accédez à la page Logtail Configurations pour définir les règles de collecte et de traitement des journaux.
1. Activer la prise en charge de la précision des nanosecondes
Définissez la source des journaux et les règles de collecte, et activez la prise en charge de la précision des nanosecondes.
Global Configurations :
Configuration Name : Définissez un nom unique pour la configuration au sein du projet. Le nom ne peut pas être modifié après la création.
-
: Activez l'interrupteur Advanced et saisissez le contenu JSON suivant pour activer la prise en charge de la précision des nanosecondes :
{ "EnableTimestampNanosecond": true }
Input Configurations :
Type : Text Log Collection.
-
File Path : Le chemin à partir duquel collecter les journaux.
Linux : Un chemin commençant par une barre oblique (/), tel que
/data/mylogs/**/*.log, spécifie tous les fichiers avec l'extension .log dans le répertoire/data/mylogset ses sous-répertoires.Windows : Commence par une lettre de lecteur, telle que
C:\Program Files\Intel\**\*.Log.
Maximum Directory Monitoring Depth : Spécifie la profondeur maximale de répertoire que le caractère générique
**dans File Path peut correspondre. La valeur par défaut est 0, ce qui signifie que seul le répertoire actuel est surveillé.
2. Configurer les processeurs
Étant donné que le journal source est au format JSON, ajoutez le processeur Data Parsing (JSON Mode) dans la section Processing Steps. Cela extrait la chaîne d'horodatage en nanosecondes du journal original dans un champ séparé.
-
Ajouter un exemple de journal
Supposons qu'un fichier journal contienne des journaux au format suivant, où le champ
asctimecontient un horodatage à la précision de la nanoseconde.{ "asctime": "2023-10-25 23:51:10,199999999", "filename": "generate_data.py", "levelname": "INFO", "lineno": 51, "module": "generate_data", "message": "{\"no\": 14, \"inner_loop\": 166, \"loop\": 27451, \"uuid\": \"9be98c29-22c7-40a1-b7ed-29ae6c8367af\"}", "threadName": "MainThread" } -
Ajouter un processeur d'analyse JSON
Cliquez sur Add Processor, sélectionnez , puis cliquez sur Confirm.
-
Ajouter un processeur d'analyse temporelle
Convertissez la chaîne temporelle extraite à l'étape précédente (le champ
asctime) en un horodatage standard en nanosecondes, et utilisez-la comme heure d'événement pour cette entrée de journal.Nom du processeur
Fonctionnalité principale
Cas d'utilisation
Time Parsing
Analyse temporelle de base
Scénarios simples avec un format fixe.
Time - Strptime
Flexible, prenant en charge des formats
strptimerichesRecommandé. Fonctionnalités complètes et compatible avec les normes de l'industrie.
Time - Go
Utilise les formats de la bibliothèque standard Go
Pour les utilisateurs familiers avec Go ou dans les scénarios où le format du journal correspond à la bibliothèque standard Go.
Time parsing
Cliquez sur Add Processor, sélectionnez , et configurez les paramètres suivants :
Original Field : Le champ d'origine qui stocke l'heure avant l'analyse du journal. Dans cet exemple, le champ est
asctime.-
Time Format : Définissez le format temporel pour correspondre au champ temporel de vos journaux. Dans cet exemple, le format est
%Y-%m-%d %H:%M:%S,%f. Dans ce format,%freprésente la partie fractionnaire d'une seconde. La précision maximale prise en charge est la nanoseconde.La chaîne de format temporel doit être identique au format temporel dans les journaux d'origine, y compris le séparateur entre les secondes et les nanosecondes, tel que
,ou.. Sinon, les journaux ne peuvent pas être analysés correctement. Time Zone : Sélectionnez le fuseau horaire du champ temporel du journal. Par défaut, le fuseau horaire du serveur est utilisé.
Time - strptime
Cliquez sur Add Processor, sélectionnez , et configurez les paramètres suivants :
Original Field : Le champ qui contient l'heure avant l'analyse du journal. Dans cet exemple, la valeur est
asctime.-
Original Time Format : Définissez le format temporel selon le champ temporel de vos journaux, tel que
%Y-%m-%d %H:%M:%S,%f. Dans ce format,%fest la partie fractionnaire d'une seconde, avec une précision allant jusqu'à la nanoseconde.La chaîne de format temporel doit correspondre exactement au format temporel dans les journaux d'origine, y compris le séparateur entre les secondes et les nanosecondes, tel que
,ou.. Sinon, les journaux ne peuvent pas être analysés correctement.
Time - Go
Cliquez sur Add Processor, sélectionnez , et configurez les paramètres suivants :
Original Time Field : Le champ d'origine utilisé pour stocker l'heure avant l'analyse du journal. Dans cet exemple, ce champ est
asctime.-
Original Time Format : Spécifiez le format temporel en fonction du champ temporel du journal d'origine. Le format doit être écrit conformément à la spécification du format temporel Go. Le modèle de format temporel est l'heure de naissance du langage Go,
2006-01-02 15:04:05 -0700 MST. Le format temporel pour cet exemple est2006-01-02 15:04:05,999999999.La chaîne de format temporel doit correspondre exactement au format temporel dans les journaux d'origine, y compris le séparateur entre les secondes et les nanosecondes, tel que
,ou.. Sinon, les journaux ne peuvent pas être analysés correctement. New Time Field : Le champ cible où l'heure est stockée après l'analyse d'un journal. Dans cet exemple, le champ est
result_asctime.New Time Format : Le format temporel pour les journaux analysés, qui doit suivre la spécification du format temporel Golang. Par exemple :
2006-01-02 15:04:05,999999999Z07:00.
3. Configurer les index
Une fois la configuration Logtail terminée, cliquez sur Next. Cela vous amène à la page Query and Analysis Configurations.
Par défaut, le système active un index en texte intégral, ce qui vous permet de rechercher des mots-clés dans le contenu du journal d'origine.
Pour effectuer des requêtes précises par champ, attendez que Preview Data se charge, puis cliquez sur Automatic Index Generation. SLS génère un index de champ basé sur la première entrée des données d'aperçu.
Une fois la configuration terminée, cliquez sur Next pour enregistrer la configuration de collecte.
Configuration via un CRD (scénarios Kubernetes)
Dans un cluster ACK ou Kubernetes autogéré, configurez la collecte d'horodatages à la précision de la nanoseconde en utilisant une définition de ressource personnalisée (CRD) AliyunLog. Les exemples suivants montrent la configuration pour chacun des trois processeurs.
Time parsing
apiVersion: telemetry.alibabacloud.com/v1alpha1
kind: ClusterAliyunPipelineConfig
metadata:
name: ${your-config-name}
spec:
config:
aggregators: []
global:
EnableTimestampNanosecond: true
inputs:
- Type: input_file
FilePaths:
- /test/sls/json_nano.log
MaxDirSearchDepth: 0
FileEncoding: utf8
EnableContainerDiscovery: true
processors:
- Type: processor_parse_json_native
SourceKey: content
- Type: processor_parse_timestamp_native
SourceKey: asctime
SourceFormat: '%Y-%m-%d %H:%M:%S,%f'
flushers:
- Type: flusher_sls
Logstore: ${your-logstore-name}
sample: |-
{
"asctime": "2025-11-03 15:39:14,229939478",
"filename": "log_generator.sh",
"levelname": "INFO",
"lineno": 204,
"module": "log_generator",
"message": "{\"no\": 45, \"inner_loop\": 15, \"loop\": 1697, \"uuid\": \"80366fca-a57d-b65a-be07-2ac1173505d9\"}",
"threadName": "MainThread"
}
project:
name: ${your-project-name}
logstores:
- name: ${your-logstore-name}
Time - strptime
apiVersion: telemetry.alibabacloud.com/v1alpha1
kind: ClusterAliyunPipelineConfig
metadata:
name: ${your-config-name}
spec:
config:
aggregators: []
global:
EnableTimestampNanosecond: true
inputs:
- Type: input_file
FilePaths:
- /test/sls/json_nano.log
MaxDirSearchDepth: 0
FileEncoding: utf8
EnableContainerDiscovery: true
processors:
- Type: processor_parse_json_native
SourceKey: content
- Type: processor_strptime
SourceKey: asctime
Format: '%Y-%m-%d %H:%M:%S,%f'
KeepSource: true
AlarmIfFail: true
AdjustUTCOffset: false
flushers:
- Type: flusher_sls
Logstore: ${your-logstore-name}
sample: |-
{
"asctime": "2025-11-03 15:39:14,229939478",
"filename": "log_generator.sh",
"levelname": "INFO",
"lineno": 204,
"module": "log_generator",
"message": "{"no": 45, "inner_loop": 15, "loop": 1697, "uuid": "80366fca-a57d-b65a-be07-2ac1173505d9"}",
"threadName": "MainThread"
}
project:
name: ${your-project-name}
logstores:
- name: ${your-logstore-name}
Time - Go
apiVersion: telemetry.alibabacloud.com/v1alpha1
kind: ClusterAliyunPipelineConfig
metadata:
name: ${your-config-name}
spec:
config:
aggregators: []
global:
EnableTimestampNanosecond: true
inputs:
- Type: input_file
FilePaths:
- /test/sls/json_nano.log
MaxDirSearchDepth: 0
FileEncoding: utf8
EnableContainerDiscovery: true
processors:
- Type: processor_parse_json_native
SourceKey: content
- Type: processor_gotime
SourceKey: asctime
SourceFormat: '2006-01-02 15:04:05,999999999'
DestKey: result_asctime
DestFormat: '2006-01-02 15:04:05,999999999Z07:00'
SetTime: true
KeepSource: true
NoKeyError: true
AlarmIfFail: true
flushers:
- Type: flusher_sls
Logstore: ${your-logstore-name}
sample: |-
{
"asctime": "2025-11-03 15:39:14,229939478",
"filename": "log_generator.sh",
"levelname": "INFO",
"lineno": 204,
"module": "log_generator",
"message": "{"no": 45, "inner_loop": 15, "loop": 1697, "uuid": "80366fca-a57d-b65a-be07-2ac1173505d9"}",
"threadName": "MainThread"
}
project:
name: ${your-project-name}
logstores:
- name: ${your-logstore-name}
Étape 4 : Vérifier les résultats
Une fois la configuration terminée, attendez quelques instants que les nouvelles données de journal soient collectées et apparaissent dans votre Logstore.
Sur la page de recherche et d'analyse de la console SLS, consultez les journaux collectés. La console optimise automatiquement l'affichage des informations temporelles à haute précision au format milliseconde, microseconde ou nanoseconde.
Dans les résultats de requête de journal, les horodatages sont affichés dans un format tel que 2025-11-03 17:34:40.747598929.
Foire aux questions
Pourquoi les horodatages en nanosecondes ne sont-ils pas analysés correctement ?
Après la configuration de la collecte, vous constatez que l'horodatage à haute précision n'est pas extrait correctement.
L'heure d'index dans la visionneuse de journaux est 10-26 00:30:39, tandis que l'asctime de l'enregistrement de journal est 2023-10-26 00:30:10,199999999. Cette divergence indique que l'heure à haute précision n'a pas été extraite correctement. Détails de l'enregistrement de journal :
__file_offset__ xxx
__tag__ xxx
asctime: 2023-10-26 00:30:10,199999999
filename: xxx
levelname: INFO
lineno: 51
message: {"no": 14, "inner_loop": 166, "loop": 27451, "uuid": "9be98c29-22c7-40a1-b7ed-29ae6c8367af"}
module: generate_data
threadName: MainThread
-
Cause
Le processeur prend en charge le spécificateur de format %f, mais le format temporel configuré ne correspond pas à la chaîne d'horodatage dans le journal source.
-
Solution
-
Connectez-vous à la machine LoongCollector, affichez les journaux et trouvez plusieurs journaux d'erreur STRPTIME_PARSE_ALARM.
tail -f /usr/local/ilogtail/logtail_plugin.LOG 2023-10-26 00:30:39 [WRN] [strptime.go:164] [processLog] [##1.0##xxxx,xxx] AlarmType:STRPTIME_PARSE_ALARM strptime(2023-10-26 00:30:10,199999999, %Y-%m-%d %H:%M:%S %f) failed: 0001-01-01 00:00:00 +0000 UTC, <nil> -
Modifiez le format d'analyse temporelle dans la configuration du processeur.
L'heure du journal d'origine est 2023-10-26 00:30:10,199999999, où le séparateur entre les secondes et l'heure à haute précision (millisecondes dans ce cas) est une virgule (,). Le format d'analyse est %Y-%m-%d %H:%M:%S %f, qui utilise un espace comme séparateur. Modifiez le format de conversion temporelle dans la configuration de collecte en %Y-%m-%d %H:%M:%S,%f.
-
Facturation et limites
Impact sur les coûts : Le champ
__time_ns_part__est stocké dans le cadre du contenu du journal, ce qui augmente légèrement votre utilisation de stockage de journaux bruts.Limitations de l'environnement : Cette fonctionnalité est prise en charge uniquement par LoongCollector 1.8.0 ou version ultérieure sur les systèmes Linux. La configuration de la fonctionnalité n'a aucun effet sur les systèmes Windows.
Références
Annexe 1 : Formats temporels courants des journaux
Sur les serveurs Linux, Logtail prend en charge tous les formats temporels fournis par la fonction strftime.
|
Format temporel |
Description |
Exemple |
|
%a |
Nom abrégé du jour de la semaine. |
Fri |
|
%A |
Nom complet du jour de la semaine. |
Friday |
|
%b |
Nom abrégé du mois. |
Jan |
|
%B |
Nom complet du mois. |
January |
|
%d |
Jour du mois sous forme de nombre décimal complété par des zéros. Plage : 01 à 31. |
07, 31 |
|
%f |
La partie fractionnaire d'une seconde (milliseconde, microseconde ou nanoseconde). |
123 |
|
%h |
Nom abrégé du mois, équivalent à %b. |
Jan |
|
%H |
Heure (horloge 24 heures) sous forme de nombre décimal complété par des zéros. Plage : 00 à 23. |
22 |
|
%I |
Heure (horloge 12 heures) sous forme de nombre décimal complété par des zéros. Plage : 01 à 12. |
11 |
|
%m |
Mois sous forme de nombre décimal complété par des zéros. Plage : 01 à 12. |
08 |
|
%M |
Minute sous forme de nombre décimal complété par des zéros. Plage : 00 à 59. |
59 |
|
%n |
Un caractère de nouvelle ligne. |
Caractère de nouvelle ligne |
|
%p |
Équivalent local de AM ou PM. |
AM, PM |
|
%r |
Heure sur 12 heures locale, équivalente à %I:%M:%S %p. |
11:59:59 AM |
|
%R |
Heure et minute au format 24 heures, équivalentes à %H:%M. |
23:59 |
|
%S |
Seconde sous forme de nombre décimal complété par des zéros. Plage : 00 à 59. |
59 |
|
%t |
Un caractère de tabulation. |
S/O |
|
%y |
Année sans siècle sous forme de nombre décimal complété par des zéros. Plage : 00 à 99. |
04, 98 |
|
%Y |
Année avec siècle sous forme de nombre décimal. |
2004, 1998 |
|
%C |
Siècle sous forme de nombre décimal. Plage : 00 à 99. |
16 |
|
%e |
Jour du mois sous forme de nombre décimal complété par des espaces. Plage : 1 à 31. Un espace de tête est utilisé pour les nombres à un seul chiffre. |
7, 31 |
|
%j |
Jour de l'année sous forme de nombre décimal complété par des zéros. Plage : 001 à 366. |
365 |
|
%u |
Jour de la semaine sous forme de nombre décimal, où 1 est lundi. Plage : 1 à 7. |
2 |
|
%U |
Numéro de semaine de l'année, avec dimanche comme premier jour de la semaine. Plage : 00 à 53. |
23 |
|
%V |
Numéro de semaine ISO 8601 de l'année, avec lundi comme premier jour de la semaine. Plage : 01 à 53. Si la semaine contenant le 1er janvier comporte quatre jours ou plus dans la nouvelle année, il s'agit de la semaine 1. Sinon, la semaine suivante est considérée comme la semaine 1. |
24 |
|
%w |
Jour de la semaine sous forme de nombre décimal, où 0 est dimanche. Plage : 0 à 6. |
5 |
|
%W |
Numéro de semaine de l'année, avec lundi comme premier jour de la semaine. Plage : 00 à 53. |
23 |
|
%c |
Représentation appropriée de la date et de l'heure locale. |
Tue Nov 20 14:12:58 2020 |
|
%x |
Représentation appropriée de la date locale. |
11/20/20 |
|
%X |
Représentation appropriée de l'heure locale. |
11:59:59 |
|
%s |
Horodatage Unix (secondes depuis l'époque). |
1476187251 |
Exemples de formats temporels
Le tableau suivant présente les normes temporelles courantes, des exemples et leurs expressions temporelles correspondantes.
|
Exemple |
Expression temporelle |
Norme temporelle |
|
2017-12-11 15:05:07 |
%Y-%m-%d %H:%M:%S |
Personnalisé |
|
[2017-12-11 15:05:07.012] |
[%Y-%m-%d %H:%M:%S.%f] |
Personnalisé |
|
2017-12-11 15:05:07.123 |
%Y-%m-%d %H:%M:%S.%f |
Personnalisé |
|
02 Jan 06 15:04 MST |
%d %b %y %H:%M %Z |
RFC822 |
|
02 Jan 06 15:04 -0700 |
%d %b %y %H:%M %z |
RFC822Z |
|
Monday, 02-Jan-06 15:04:05 MST |
%A, %d-%b-%y %H:%M:%S %Z |
RFC850 |
|
Mon, 02 Jan 2006 15:04:05 MST |
%a, %d %b %Y %H:%M:%S %Z |
RFC1123 |
|
2006-01-02T15:04:05Z07:00 |
%Y-%m-%dT%H:%M:%S |
RFC3339 |
|
2006-01-02T15:04:05.999999999Z07:00 |
%Y-%m-%dT%H:%M:%S.%f |
RFC3339Nano |
|
1637843406 |
%s |
Personnalisé |
|
1637843406123 |
%s |
Personnalisé (Simple Log Service (SLS) traite les données avec une précision à la seconde) |
Annexe 2 : Formats temporels Go
Le bloc de code suivant répertorie les constantes de format temporel officielles de la bibliothèque standard Go :
const (
Layout = "01/02 03:04:05PM '06 -0700" // The reference time, in numerical order.
ANSIC = "Mon Jan _2 15:04:05 2006"
UnixDate = "Mon Jan _2 15:04:05 MST 2006"
RubyDate = "Mon Jan 02 15:04:05 -0700 2006"
RFC822 = "02 Jan 06 15:04 MST"
RFC822Z = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone
RFC850 = "Monday, 02-Jan-06 15:04:05 MST"
RFC1123 = "Mon, 02 Jan 2006 15:04:05 MST"
RFC1123Z = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone
RFC3339 = "2006-01-02T15:04:05Z07:00"
RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
Kitchen = "3:04PM"// Handy time stamps.
Stamp = "Jan _2 15:04:05"
StampMilli = "Jan _2 15:04:05.000"
StampMicro = "Jan _2 15:04:05.000000"
StampNano = "Jan _2 15:04:05.000000000"
)