Maison >Tutoriel système >Linux >Comment convertir les horodatages Unix en chaînes dans Linux

Comment convertir les horodatages Unix en chaînes dans Linux

William Shakespeare
William Shakespeareoriginal
2025-03-08 11:48:14721parcourir

Les systèmes d'exploitation Linux et Unix utilisent souvent des horodatages pour représenter les dates et les temps dans un format lisible par machine. Cependant, pour les utilisateurs humains, ces horodatages peuvent être difficiles à interpréter. Dans cet article de blog, nous expliquerons le processus de conversion des horodatages UNIX en chaînes lisibles par l'homme dans Linux. Nous explorerons diverses méthodes et fournirons des exemples pratiques pour vous aider à comprendre et à mettre en œuvre ces techniques.

Catalogue

- Comprendre les horodatages Unix

    Pourquoi convertir les horodatages en chaînes?
  • Méthodes pour convertir les horodatages en chaînes
      1. Utilisez la commande de date
      1. Utilisez awk
      1. Utiliser Perl
      1. en utilisant python
      1. Utilisez la commande date avec le format personnalisé
  • cas d'utilisation pratique
      1. Enregistrement du journal et surveillance
      1. Traitement et analyse des données
      1. Automatisation et script
      1. Interface utilisateur
  • Exemple de cas d'utilisation: Système de surveillance Temps d'exécution
  • Conclusion

Comprendre l'horodatage Unix

Les horodatages UNIX sont des représentations numériques de secondes écoulées depuis le 1er janvier 1970 (appelé

Unix Era ). Par exemple, l'horodatage 1732579200 correspond à 00:00:00 UTC le 26 novembre 2024.

Pourquoi convertir les horodatages en chaînes?

Il y a de nombreux avantages à convertir des horodatages en chaînes:

  • lisibilité: Les utilisateurs humains peuvent facilement comprendre et interpréter les dates et les temps dans des formats lisibles.
  • Enregistrement du journal: Les journaux contiennent généralement des horodatages. Le convertir en une chaîne rend le journal plus accessible.
  • Traitement des données: Convertir des horodatages en chaînes simplifie l'analyse et les rapports lors du traitement des données.
Méthodes pour convertir les horodatages en chaînes

1. La commande

Date est un outil simple et largement utilisé pour convertir les horodatages en chaînes. Ce qui suit est de savoir comment l'utiliser:

ici,
<code>timestamp=1732579200</code>

L'horodatage est un nom de variable.
  • 1732579200 est la valeur attribuée à la variable d'horodatage. Cette valeur est un horodatage Unix, représentant le nombre de secondes écoulées depuis le 1er janvier 1970, connues sous le nom d'ère Unix.
Cette commande convertit l'horodatage 1732579200 en date et heure lisibles en fonction de l'homme.
<code>date -d @$timestamp</code>

ici,

Date est une utilitaire de ligne de commande dans Linux pour afficher ou définir les dates et les heures du système.
  • -d est une option de la commande date qui vous permet de spécifier la chaîne de date ou l'horodatage à afficher.
  • @ $ L'horloge est le paramètre transmis à l'option -D. Ici, @ est un préfixe spécial reconnu par la commande Date, indiquant que la valeur suivante est un horodatage Unix.
  • $ L'horodatage est une variable qui contient la valeur d'horodatage UNIX (1732579200).
  • La commande ci-dessus renvoie la sortie suivante dans mon système Debian 12:
<code>timestamp=1732579200</code>

How To Convert Unix Timestamps To Strings In Linux

2.

awk est un puissant outil de traitement de texte qui peut également convertir les horodatages en chaînes. Voici un exemple de commande:

<code>date -d @$timestamp</code>
Cette commande sort la date et l'heure dans le format Yyyy-mm-dd HH: MM: SS.

Exemple de sortie :

<code>星期二 2024 年 11 月 26 日 上午 05:30:00 IST</code>
3.

perl est un autre langage de script qui peut gérer la conversion d'horodatage. Ce qui suit est de savoir comment l'utiliser:

Cette commande imprime la date et l'heure au format par défaut.
<code>timestamp=1732579200echo $timestamp | awk '{print strftime("%Y-%m-%d %H:%M:%S", )}'</code>

Exemple de sortie

:

4.
<code>2024-11-26 05:30:00</code>
Python est une langue polyvalente qui peut facilement convertir les horodatages en chaînes. Voici un exemple:

Cette commande sort la date et l'heure dans le format Yyyy-mm-dd HH: MM: SS.

<code>timestamp=1732579200perl -e "print scalar(localtime($timestamp))"</code>

Exemple de sortie

:

5.

Si vous avez besoin d'un format spécifique, vous pouvez utiliser la commande Date avec des options de mise en forme personnalisées:
<code>Tue Nov 26 05:30:00 2024</code>

Cette commande sort la date et l'heure dans le format Yyyy-mm-dd HH: MM: SS.

cas d'utilisation pratique
<code>timestamp=1732579200python3 -c "import datetime; print(datetime.datetime.fromtimestamp($timestamp).strftime('%Y-%m-%d %H:%M:%S'))"</code>

1.

Convertir les horodatages en chaînes pour rendre le journal plus facile à comprendre lors du traitement des fichiers journaux:

2.

Convertir les horodatages en chaînes pour rendre les données plus faciles à accéder lors du traitement des fichiers CSV:

<code>2024-11-26 05:30:00</code>
3.

Les scripts qui exécutent les tâches planifiées nécessitent généralement un temps d'exécution d'enregistrement. La conversion de l'heure actuelle en une chaîne aide à enregistrer:

4.
<code>timestamp=1732579200date -d @$timestamp +"%Y-%m-%d %H:%M:%S"</code>
Les applications Web affichent généralement des horodatages aux utilisateurs. La conversion des horodatages Unix en chaînes garantit que les utilisateurs voient des formats de date et d'heure lisibles:

Exemple de cas d'utilisation: Système de surveillance Temps d'exécution

<code>grep "error" /var/log/syslog | awk '{print strftime("%Y-%m-%d %H:%M:%S", ), <pre class="brush:php;toolbar:false"><code>cat data.csv | awk -F, '{print strftime("%Y-%m-%d %H:%M:%S", ), , }'</code>
}' Supposons que vous ayez un script qui surveille l'exécution du serveur et enregistre les résultats. Vous voudrez peut-être inclure un horodatage lisible par l'homme dans votre fichier journal:

Enregistrez ce qui précède dans un fichier, tel que sysuptime.sh. Faites-le exécutable en utilisant la commande suivante:

<code>timestamp=$(date +%s)
date -d @$timestamp >> task_log.txt</code>

Exécuter le script:

Après l'exécution de ce script, le temps d'exécution total du système Linux sera écrit dans le fichier ~ / system_uptime.log.
<code>from datetime import datetimetimestamp = 1732579200readable_date = datetime.fromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')print(readable_date)</code>

Vous pouvez le vérifier en affichant le contenu de ce fichier:

#!/bin/bash

# 获取当前 Unix 时间戳
timestamp=$(date +%s)

# 将时间戳转换为人类可读的字符串
readable_date=$(date -d @$timestamp +"%Y-%m-%d %H:%M:%S")

# 获取系统运行时间
uptime=$(uptime -p)

# 记录结果
echo "[$readable_date] 系统运行时间:$uptime" >> ~/system_uptime.log

Conclusion

chmod +x sysuptime.sh
Comme vous pouvez le voir, la conversion des horodatages en chaînes est très simple et simple. Il s'agit d'une tâche de base dans Linux qui peut améliorer la lisibilité et la disponibilité des données.

Que vous traitez les journaux, le traitement des données ou le développement d'une application, comprendre comment convertir les horodatages en chaînes rendra vos tâches plus faciles et plus efficaces.

En utilisant les méthodes décrites dans cet article de blog, vous pouvez facilement gérer la conversion d'horodatage dans un environnement Linux.
./sysuptime.sh

Readings connexes

:

  • Comment trouver des horodatages Unix pour des dates et des temps spécifiques dans Linux
  • Explication détaillée et exemples d'horodatage du fichier Linux

L'image reste dans le format d'origine.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn