1

如何将 PostgreSQL timestamp(带时区)转换为 Rust Chrono DateTime<Utc>

例子:2020-04-12 22:10:57.0+02

4

2 回答 2

0

您必须使用以下自定义解析器str

let date_str = "2020-04-12 22:10:57.000+02";
// convert the string into DateTime<FixedOffset>
let datetime = DateTime::parse_from_str(&date_str, "%Y-%m-%d %H:%M:%S%.f%#z").unwrap();
// convert the string into DateTime<Utc> or other timezone
let datetime_utc = datetime.with_timezone(&Utc);

额外信息

  • %.f=> .026490:类似于.%f但左对齐。这些都消耗前导点。
  • %#z=> +09仅解析:相同%z但允许缺少或存在分钟。

有关详细信息,请参阅此 awnser

于 2021-05-31T13:11:08.263 回答
0

Postgres 类型TIMESTAMP只能转换为 chrono 的NaiveDateTime.

为了转换为 chrono's DateTime<Utc>,您必须TIMESTAMP WITH TIME ZONE为您的列使用 Postgres 类型。

于 2022-01-11T10:31:29.683 回答