文字列との相互変換。
成果物
コード
parse_from_rfc3339
, to_rfc3339
use chrono::prelude::*; fn main() { let local: DateTime<Local> = Local::now(); println!("{}", local); println!("{}", local.format("%Y-%m-%d %H:%M:%S").to_string()); println!("{}", local.to_rfc3339()); let dt = DateTime::parse_from_rfc3339(local.to_rfc3339().as_str()); println!("{}", dt.unwrap().to_rfc3339()); }
2019-07-25 14:13:56.543161995 +09:00 2019-07-25 14:13:56 2019-07-25T14:13:56.543161995+09:00 2019-07-25T14:13:56.543161995+09:00
parse_from_str
// let dt = DateTime::parse_from_str("2000-01-02 03:04:05", "%Y-%m-%d %H:%M:%S"); // thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ParseError(NotEnough)' let dt = DateTime::parse_from_str("2000-01-02 03:04:05 +09:00", "%Y-%m-%d %H:%M:%S %z"); println!("{}", dt.unwrap()); println!("{:?}", dt.unwrap());
2000-01-02 03:04:05 +09:00 2000-01-02T03:04:05+09:00
なんと、タイムゾーンがないとエラーになってしまう。指定がないときはデフォルトでローカルタイムゾーンにして欲しいのだが……。
しかも{}
と{:?}
で結果が変わる……。常に指定したフォーマットになってほしい。as_str()
メソッドもないし。
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 9.0 2018-11-13
- bash 4.4.12(1)-release
- rustc 1.36.0 (a53f9df32 2019-07-03)
- cargo 1.36.0 (c4fcfb725 2019-05-15)
$ uname -a Linux raspberrypi 4.19.42-v7+ #1219 SMP Tue May 14 21:20:58 BST 2019 armv7l GNU/Linux
前回まで
- Rust学習まとめ(ドキュメント)
- Rust自習(じゃんけんゲーム1)
- Rust自習(双方向リスト1)
- Rust自習(単方向リスト1)
- Rust自習(単方向リスト2)
- Rust自習(単方向リスト3)
- Rust自習(単方向リスト4)
- Rust自習(単方向リスト5)
- Rust自習(単方向リスト6)
- Rust自習(単方向リスト7)
- Rust自習(リストのインタフェースを考える)
- Rust自習(連結リスト1)
- Rust自習(連結リスト2)
- Rust自習(連結リスト3)
- Rust自習(連結リスト4)
- Rust自習(連結リストの取得系インタフェース考察)
- Rust自習(連結リスト5)
- Rust自習(連結リストの取得系インタフェース考察2)
- Rust自習(連結リスト6)
- Rust自習(連結リスト7)
- Rust自習(連結リスト8)
- Rust自習(連結リスト9)
- Rust自習(変数名でイテレートする方法)
- Rust自習(iter、iter_mut実装方法)
- Rust自習(連結リスト10)
- Rust自習(rev()実装できず)
- Rust自習(cycle()実装できず)
- Rust自習(じゃんけんゲーム2)
- Rust自習(じゃんけんゲーム3)
- Rust自習(じゃんけんゲーム4)
- Rust自習(じゃんけんゲーム5)
- Rust自習(じゃんけんゲーム6)
- Rust自習(じゃんけんゲーム7)
- Rust自習(じゃんけんゲーム8)
- Rustのアップデート(rustup update)
- Rust自習(SQLite3 1)
- Rust自習(SQLite3 2)
- Rust自習(SQLite3 3)
- Rust自習(日時 1 chrono)