Как я могу получить местный часовой пояс браузера с помощью Rust js_sys?
Я использую js_sys
crate для запуска кода Rust в браузере.
Трудно понять, как использовать Intl::DateTimeFormat
.
Все, что я хочу, это получить местный часовой пояс, что делается с помощью этого JS-кода:
const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
Похоже, что в Rust это не работает:
let tz = Intl::DateTimeFormat().resolved_options().time_zone();
--> src/lib.rs:14:14
|
14 | let tz = Intl::DateTimeFormat().resolved_options().time_zone();
| ^^^^^^^^^^^^^^^^^^^^ did you mean `Intl::DateTimeFormat { /* fields */ }`?
Кажется, хочет, чтобы я создал новый DateTimeFormat
struct, но я просто хочу получить "по умолчанию", если есть такая...
Как я могу заставить это работать?
1 ответ
Благодаря @pauan и, как было предложено @SOFe в комментариях, вот как это сделать:
let options = Intl::DateTimeFormat::new(&Array::new(), &Object::new())
.resolved_options();
let tz = Reflect::get(&options, &JsValue::from("timeZone"))
.expect("Cannot get timeZone")
.as_string()
.expect("timeZone is not a String");