0

我正在使用js_syscrate 在浏览器中运行一些 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结构,但我只想获得“默认”结构,如果有这样的事情......

我怎样才能让它工作?

4

1 回答 1

0

感谢@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");
于 2020-05-07T10:53:07.663 回答