mirror of
https://github.com/rust-lang-nursery/rust-cookbook
synced 2024-11-22 03:23:05 +00:00
Added "Converting a formatted date to a Unix timestamp and vice versa" recipe
Added "Converting a formatted date to a Unix timestamp and vice versa" recipe
This commit is contained in:
parent
3b1a4f5f94
commit
e668fff733
2 changed files with 36 additions and 0 deletions
|
@ -27,6 +27,7 @@
|
|||
| [Check number of logical cpu cores][ex-check-cpu-cores] | [![num_cpus-badge]][num_cpus] | [![cat-hardware-support-badge]][cat-hardware-support] |
|
||||
| [Obtain backtrace of complex error scenarios][ex-error-chain-backtrace] | [![error-chain-badge]][error-chain] | [![cat-rust-patterns-badge]][cat-rust-patterns] |
|
||||
| [Measure elapsed time][ex-measure-elapsed-time] | [![std-badge]][std] | [![cat-time-badge]][cat-time] |
|
||||
| [Convert date to UNIX timestamp and vice versa][ex-convert-datetime-timestamp] | [![chrono-badge]][chrono] | [![cat-date-and-time-badge]][cat-date-and-time] |
|
||||
| [Convert a local time to an another UTC timezone and vice versa][ex-convert-datetime-timezone] | [![chrono-badge]][chrono] | [![cat-date-and-time-badge]][cat-date-and-time] |
|
||||
| [Display formatted date and time][ex-format-datetime] | [![chrono-badge]][chrono] | [![cat-date-and-time-badge]][cat-date-and-time] |
|
||||
| [Parse string into DateTime struct][ex-parse-datetime] | [![chrono-badge]][chrono] | [![cat-date-and-time-badge]][cat-date-and-time] |
|
||||
|
@ -1294,6 +1295,34 @@ fn main() {
|
|||
}
|
||||
```
|
||||
|
||||
[ex-convert-datetime-timestamp]: #ex-convert-datetime-timestamp
|
||||
<a name="ex-convert-datetime-timestamp"></a>
|
||||
## Convert date to UNIX timestamp and vice versa
|
||||
[![chrono-badge]][chrono] [![cat-date-and-time-badge]][cat-date-and-time]
|
||||
|
||||
Converts a date given by [`NaiveDate::from_ymd`] and [`NaiveTime::from_hms`]
|
||||
to [UNIX timestamp] using [`NaiveDateTime::timestamp`].
|
||||
Then it calculates what was the date after one billion seconds
|
||||
since January 1, 1970 0:00:00 UTC, using [`NaiveDateTime::from_timestamp`].
|
||||
|
||||
```rust
|
||||
extern crate chrono;
|
||||
|
||||
use chrono::{NaiveDate, NaiveDateTime};
|
||||
|
||||
fn main() {
|
||||
let date_time: NaiveDateTime = NaiveDate::from_ymd(2017, 11, 12).and_hms(17, 33, 44);
|
||||
println!(
|
||||
"Number of seconds between 1970-01-01 00:00:00 and {} is {}.",
|
||||
date_time, date_time.timestamp());
|
||||
|
||||
let date_time_after_a_billion_seconds = NaiveDateTime::from_timestamp(1_000_000_000, 0);
|
||||
println!(
|
||||
"Date after a billion seconds since 1970-01-01 00:00:00 was {}.",
|
||||
date_time_after_a_billion_seconds);
|
||||
}
|
||||
```
|
||||
|
||||
[ex-format-datetime]: #ex-format-datetime
|
||||
<a name="ex-format-datetime"></a>
|
||||
## Display formatted date and time
|
||||
|
@ -1497,8 +1526,12 @@ fn main() {
|
|||
[`Mutex`]: https://doc.rust-lang.org/std/sync/struct.Mutex.html
|
||||
[`MutexGuard`]: https://doc.rust-lang.org/std/sync/struct.MutexGuard.html
|
||||
[`NaiveDate`]: https://docs.rs/chrono/*/chrono/naive/struct.NaiveDate.html
|
||||
[`NaiveDate::from_ymd`]: https://docs.rs/chrono/*/chrono/naive/struct.NaiveDate.html#method.from_ymd
|
||||
[`NaiveDateTime`]: https://docs.rs/chrono/*/chrono/naive/struct.NaiveDateTime.html
|
||||
[`NaiveDateTime::from_timestamp`]: https://docs.rs/chrono/*/chrono/naive/struct.NaiveDateTime.html#method.from_timestamp
|
||||
[`NaiveDateTime::timestamp`]: https://docs.rs/chrono/*/chrono/naive/struct.NaiveDateTime.html#method.timestamp
|
||||
[`NaiveTime`]: https://docs.rs/chrono/*/chrono/naive/struct.NaiveTime.html
|
||||
[`NaiveTime::from_hms`]: https://docs.rs/chrono/*/chrono/naive/struct.NaiveTime.html#method.from_hms
|
||||
[`Normal`]: https://doc.rust-lang.org/rand/rand/distributions/normal/struct.Normal.html
|
||||
[`num_cpus::get`]: https://docs.rs/num_cpus/*/num_cpus/fn.get.html
|
||||
[`Output`]: https://doc.rust-lang.org/std/process/struct.Output.html
|
||||
|
@ -1542,3 +1575,4 @@ fn main() {
|
|||
[RFC 3339]: https://www.ietf.org/rfc/rfc3339.txt
|
||||
[twitter hashtag regex]: https://github.com/twitter/twitter-text/blob/c9fc09782efe59af4ee82855768cfaf36273e170/java/src/com/twitter/Regex.java#L255
|
||||
[uniform distribution]: https://en.wikipedia.org/wiki/Uniform_distribution_(continuous)
|
||||
[UNIX timestamp]: https://en.wikipedia.org/wiki/Unix_time
|
||||
|
|
|
@ -45,6 +45,7 @@ community. It needs and welcomes help. For details see
|
|||
| [Check number of logical cpu cores][ex-check-cpu-cores] | [![num_cpus-badge]][num_cpus] | [![cat-hardware-support-badge]][cat-hardware-support] |
|
||||
| [Obtain backtrace of complex error scenarios][ex-error-chain-backtrace] | [![error-chain-badge]][error-chain] | [![cat-rust-patterns-badge]][cat-rust-patterns] |
|
||||
| [Measure elapsed time][ex-measure-elapsed-time] | [![std-badge]][std] | [![cat-time-badge]][cat-time] |
|
||||
| [Convert date to UNIX timestamp and vice versa][ex-convert-datetime-timestamp] | [![chrono-badge]][chrono] | [![cat-date-and-time-badge]][cat-date-and-time] |
|
||||
| [Convert a local time to an another UTC timezone and vice versa][ex-convert-datetime-timezone] | [![chrono-badge]][chrono] | [![cat-date-and-time-badge]][cat-date-and-time] |
|
||||
| [Display formatted date and time][ex-format-datetime] | [![chrono-badge]][chrono] | [![cat-date-and-time-badge]][cat-date-and-time] |
|
||||
| [Parse string into DateTime struct][ex-parse-datetime] | [![chrono-badge]][chrono] | [![cat-date-and-time-badge]][cat-date-and-time] |
|
||||
|
@ -162,6 +163,7 @@ community. It needs and welcomes help. For details see
|
|||
[ex-check-broken-links]: net.html#ex-check-broken-links
|
||||
[ex-check-cpu-cores]: basics.html#ex-check-cpu-cores
|
||||
[ex-clap-basic]: app.html#ex-clap-basic
|
||||
[ex-convert-datetime-timestamp]: basics.html#ex-convert-datetime-timestamp
|
||||
[ex-convert-datetime-timezone]: basics.html#ex-convert-datetime-timezone
|
||||
[ex-crossbeam-spawn]: concurrency.html#ex-crossbeam-spawn
|
||||
[ex-csv-delimiter]: encoding.html#ex-csv-delimiter
|
||||
|
|
Loading…
Reference in a new issue