Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pola-rs
GitHub Repository: pola-rs/polars
Path: blob/main/docs/source/src/rust/user-guide/transformations/time-series/timezones.rs
7890 views
1
// --8<-- [start:setup]
2
use polars::prelude::*;
3
// --8<-- [end:setup]
4
5
fn main() -> Result<(), Box<dyn std::error::Error>> {
6
// --8<-- [start:example]
7
let ts = ["2021-03-27 03:00", "2021-03-28 03:00"];
8
let tz_naive = Column::new("tz_naive".into(), &ts);
9
let time_zones_df = DataFrame::new(vec![tz_naive])?
10
.lazy()
11
.select([col("tz_naive").str().to_datetime(
12
Some(TimeUnit::Milliseconds),
13
None,
14
StrptimeOptions::default(),
15
lit("raise"),
16
)])
17
.with_columns([col("tz_naive")
18
.dt()
19
.replace_time_zone(Some(TimeZone::UTC), lit("raise"), NonExistent::Raise)
20
.alias("tz_aware")])
21
.collect()?;
22
23
println!("{}", &time_zones_df);
24
// --8<-- [end:example]
25
26
// --8<-- [start:example2]
27
let time_zones_operations = time_zones_df
28
.lazy()
29
.select([
30
col("tz_aware")
31
.dt()
32
.replace_time_zone(
33
TimeZone::opt_try_new(Some("Europe/Brussels")).unwrap(),
34
lit("raise"),
35
NonExistent::Raise,
36
)
37
.alias("replace time zone"),
38
col("tz_aware")
39
.dt()
40
.convert_time_zone(
41
TimeZone::opt_try_new(Some("Asia/Kathmandu"))
42
.unwrap()
43
.unwrap(),
44
)
45
.alias("convert time zone"),
46
col("tz_aware")
47
.dt()
48
.replace_time_zone(None, lit("raise"), NonExistent::Raise)
49
.alias("unset time zone"),
50
])
51
.collect()?;
52
println!("{}", &time_zones_operations);
53
// --8<-- [end:example2]
54
55
Ok(())
56
}
57
58