συστήματα

Γνώση Υπολογιστών >> συστήματα >  >> Linux

Πώς να μετατρέψετε/αλλάξετε την εποχή της ώρας χρησιμοποιώντας το βοηθητικό πρόγραμμα ημερομηνίας σε Linux ή διακομιστή Unix{13 καλύτερα παραδείγματα}

Τεχνικές μετατροπής χρόνου εποχής:

1. Μετατροπή ημερομηνίας σε ώρα εποχής:

Για μετατροπή ημερομηνίας και ώρας σε ώρα εποχής σε δευτερόλεπτα, μπορείτε να χρησιμοποιήσετε την εντολή «ημερομηνία» με την επιλογή «+%s».

Για παράδειγμα, για να μετατρέψετε την ημερομηνία και την ώρα "1 Ιανουαρίου 1970 00:00:00 UTC" σε ώρα εποχής, θα χρησιμοποιήσετε την ακόλουθη εντολή:

```

$ ημερομηνία --utc -d '1970-01-01 00:00:00 UTC' +%s

```

Αυτή η εντολή θα έβγαζε τον ακόλουθο χρόνο εποχής:

```

0

```

2. Μετατροπή εποχής σε ημερομηνία:

Για μετατροπή της εποχής σε ημερομηνία και ώρα, μπορείτε να χρησιμοποιήσετε την εντολή «ημερομηνία» με την επιλογή «-d @».

Για παράδειγμα, για να μετατρέψετε την εποχή εποχής "0" σε ημερομηνία και ώρα, θα χρησιμοποιούσατε την ακόλουθη εντολή:

```

$ ημερομηνία -d @0

```

Αυτή η εντολή θα δώσει την ακόλουθη ημερομηνία και ώρα:

```

Πέμ 1 Ιανουαρίου 00:00:00 UTC 1970

```

3. Προσθήκη/Αφαίρεση δευτερολέπτων σε/από την εποχή της εποχής:

Για προσθήκη ή αφαίρεση δευτερολέπτων από την εποχή, μπορείτε να χρησιμοποιήσετε την εντολή "date" με τις επιλογές " -d @" και " +%s".

Για παράδειγμα, για να προσθέσετε 60 δευτερόλεπτα στον χρόνο εποχής "0", θα χρησιμοποιούσατε την ακόλουθη εντολή:

```

$ date -d @0 +%s

```

Αυτή η εντολή θα έβγαζε τον ακόλουθο χρόνο εποχής:

```

60

```

Για να αφαιρέσετε 60 δευτερόλεπτα από τον χρόνο εποχής "60", θα χρησιμοποιούσατε την ακόλουθη εντολή:

```

$ date --date='@60 δευτερόλεπτα' -u +%s

```

5. Μετατροπή δευτερολέπτων σε μορφή ημερομηνίας:

```

$ ημερομηνία -d @1585233869

```

Για να αφαιρέσετε 1 ημέρα (86400 δευτερόλεπτα) από τον χρόνο εποχής:

```

$ date -d "τώρα - 1 ημέρα" +%s

```

Ακολουθούν 13 καλύτερα παραδείγματα μετατροπής ή αλλαγής χρονικής περιόδου χρησιμοποιώντας το βοηθητικό πρόγραμμα ημερομηνίας σε Linux ή Unix:

1. Μετατροπή ημερομηνίας σε ώρα εποχής, λαμβάνοντας υπόψη τη ζώνη ώρας:

Για παράδειγμα, για να μετατρέψετε την ημερομηνία και την ώρα "1 Ιανουαρίου 1970 12:00:00 PM EST" σε χρόνο εποχής σε δευτερόλεπτα, θα χρησιμοποιούσατε την ακόλουθη εντολή:

```

$ date --date '1970-01-01 12:00:00 EST' +%s

```

Εδώ, η «ημερομηνία» χρησιμοποιείται με την επιλογή «--ημερομηνία» για τη μετατροπή μιας συμβολοσειράς που αντιπροσωπεύει την ημερομηνία και την ώρα σε ώρα εποχής. Το «+%s» μορφοποιεί την έξοδο ως τον αριθμό των δευτερολέπτων από την 1η Ιανουαρίου 1970, 00:00:00 UTC.

Αυτή η εντολή θα έβγαζε τον ακόλουθο χρόνο εποχής:

```

3600

```

2. Μετατροπή εποχής σε ημερομηνία, λαμβάνοντας υπόψη το UTC:

Για παράδειγμα, για να μετατρέψετε την εποχή εποχής "1585233869" σε ημερομηνία και ώρα σε μορφή UTC, θα χρησιμοποιήσετε την ακόλουθη εντολή:

```

$ ημερομηνία -ud @1585233869

```

Σε αυτό το παράδειγμα, η επιλογή «-ud» χρησιμοποιείται με το σύμβολο «@» για να ερμηνεύσει τον χρόνο εποχής του «1585233869» ως χρονική σήμανση Unix σε UTC.

Αυτή η εντολή θα δώσει την ακόλουθη ημερομηνία και ώρα:

```

Κυρ 29 Μαρτίου 18:24:29 UTC 2020

```

3. Μετατροπή εποχής σε τοπική ζώνη ώρας:

Για να μετατρέψετε την εποχή εποχής "1585233869" σε ημερομηνία και ώρα σε μια συγκεκριμένη ζώνη ώρας, χρησιμοποιήστε την "ημερομηνία -d @1585233869 -T "ζώνη ώρας"", αντικαθιστώντας τη "ζώνη ώρας" με τη ζώνη ώρας που επιθυμείτε.

```

$ ημερομηνία -d @1585233869 -T "America/New_York"

```

Αυτό θα εμφανίσει:

```

Κυρ 29 Μαρτίου 13:24:29 EDT 2020

```

4. Μετατροπή ημερομηνίας σε χιλιοστά της εποχής (χιλιοστά του δευτερολέπτου από την εποχή):

Για να μετατρέψετε μια ημερομηνία όπως "1 Ιουλίου 2020, 12:30 μ.μ." σε χιλιοστά του δευτερολέπτου, χρησιμοποιήστε την "ημερομηνία +%s%3N", όπου το "+%s" είναι δευτερόλεπτα από την εποχή και το "%3N" προσθέτει 3 ψηφία για χιλιοστά του δευτερολέπτου .

```

$ date --ημερομηνία '1 Ιουλίου 2020, 12:30 μ.μ.' +%s%3N

```

Αυτό δίνει έξοδο σε χιλιοστά του δευτερολέπτου:

```

1593630600992

```

5. Μετατροπή των χιλιοστών της εποχής σε ημερομηνία αναγνώσιμη από τον άνθρωπο:

Για να μετατρέψετε epoch millis, όπως το 1593630600000, σε μια συμβολοσειρά ημερομηνίας, χρησιμοποιήστε "date -d @epoch-millis +"%Y-%m-%d %H:%M:%S.%3N".

```

$ date -d @1593630600000 +'%Y-%m-%d %H:%M:%S.%3N'

```

Παραγωγή:

```

2020-07-01 12:30:00.000

```

6. Λάβετε την τρέχουσα ημερομηνία και ώρα σε μορφή αναγνώσιμη από μηχανή:

Το "date +%s%3N" εμφανίζει την εποχή χιλιοστά του δευτερολέπτου, χρήσιμο όταν συγκρίνετε δύο ημερομηνίες.

```

$ ημερομηνία +%s%3N

```

Παραγωγή:

```

1593633240539

```

7. Προσθήκη ή αφαίρεση ημερών από την εποχή:

Η ημερομηνία -d @epoch-seconds +days προσαρμόζει τον χρόνο της εποχής κατά τον καθορισμένο αριθμό ημερών. Για παράδειγμα:

```

$ ημερομηνία -d @1593630600 +3 ημέρες

```

Παραγωγή:

```

Πέμ. 4 Ιουλίου 12:30:00 EDT 2020

```

8. Αφαιρέστε ημερομηνίες για να υπολογίσετε τη διαφορά:

Για να υπολογίσετε τη διαφορά μεταξύ δύο ημερομηνιών, βρείτε τα δευτερόλεπτα της εποχής τους και αφαιρέστε. Για παράδειγμα:

```

$ end_time=$(ημερομηνία +%s)

$ start_time=$(ημερομηνία -d "2019-07-01" +%s)

$διαφορά_σε_δευτερόλεπτα=$(( end_time - start_time ))

```

9. Προσθήκη ή αφαίρεση χρονικών διαστημάτων:

Για να προσθέσετε ή να αφαιρέσετε συγκεκριμένα διαστήματα όπως 5 ώρες και 30 λεπτά από μια δεδομένη εποχή, χρησιμοποιήστε:

```

$ ημερομηνία -d @1593630600 +5 ώρες -30 λεπτά

```

Παραγωγή:

```

Παρ 2 Ιουλίου 12:00:00 EDT 2020

```

10. Μέτρηση ημερομηνίας μέχρι μελλοντικό συμβάν:

Για να προσδιορίσετε πόσο χρόνο μέχρι μια συγκεκριμένη ημερομηνία στο μέλλον, μετατρέψτε και τις δύο σχετικές ημερομηνίες σε δευτερόλεπτα εποχής και υπολογίστε τη διαφορά. Για παράδειγμα:

```

$ end_time=$(ημερομηνία -d "25-12-2021 00:00" +%s)

$ start_time=$(ημερομηνία +%s)

$ seconds_until_Christmas=$(( end_time - start_time ))

```

11. Μετρήστε ημερομηνίες από το προηγούμενο συμβάν:

Ομοίως, η μέτρηση του αριθμού των ημερών από την ημερομηνία ενός συμβάντος όπως τα γενέθλια θα περιλάμβανε την αφαίρεση των δευτερολέπτων της εποχής της ημερομηνίας του συμβάντος από την τρέχουσα ημερομηνία:

```

$γενέθλια=$(ημερομηνία -d "1999-09-01" +%s)

$current_time=$(ημερομηνία +%s)

$ days_since_birthday=$(( (current_time - γενέθλια)/(60*60*24) ))

```

12. Δημιουργία τυχαίας εποχής:

Για να δημιουργήσετε μια τυχαία χρονική σήμανση εντός ενός καθορισμένου εύρους ημερομηνιών, χρησιμοποιήστε την ακόλουθη εντολή:

```

$ min_time=$(ημερομηνία -d "2019-07-01" +%s)

$ max_time=$(ημερομηνία -d "2020-07-31" +%s)

$ random_time=$(shuf -i $min_time-$max_time -n1)

$ ημερομηνία -d @$random_time

```

13. Μετατροπή χρόνου αναγνώσιμων από τον άνθρωπο σε δευτερόλεπτα:

Για να απλοποιήσετε τους υπολογισμούς χρόνου, μετατρέψτε τα αναγνώσιμα από τον άνθρωπο χρονικά διαστήματα σε δευτερόλεπτα χρησιμοποιώντας την αριθμομηχανή «expr»:

```

$ seconds_5_hours=$(expr 5 \* 60 \* 60)

$ date +%s -d "τώρα - $seconds_5_hours δευτερόλεπτα"

```

Αυτό εμφανίζει την τρέχουσα ημερομηνία/ώρα μειωμένη κατά 5 ώρες:

```

Παρ 9 Ιουλίου 15:02:20 EDT 2021

```

Θυμηθείτε, όταν ασχολείστε με υπολογισμούς που σχετίζονται με την ώρα, η επιλογή της κατάλληλης ζώνης ώρας είναι ζωτικής σημασίας για την εξασφάλιση ακριβών αποτελεσμάτων.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα