【问题标题】:ScalaJS: What's the state of the art for cross-platform dates?ScalaJS:跨平台日期的最新技术是什么?
【发布时间】:2016-11-25 16:24:34
【问题描述】:

我在 Play 中使用 ScalaJS。我想在 JS 和 JVM 平台上使用的许多模型都涉及日期和时间。鉴于缺乏跨平台的日期/时间库,人们是如何处理这个问题的?

我知道的事情:

  1. scalajs-java-time 项目 (https://github.com/scala-js/scala-js-java-time) 将 JDK8 的 java.time api 移植到 Scala.js。不幸的是,它远未完成,从提交日志来看,它似乎已经停滞不前。
  2. https://github.com/mdedetrich/soda-time 是 JodaTime 到 Scala/Scala.js 的一个端口。但它还没有准备好用于生产。
  3. https://groups.google.com/forum/#!topic/scala-js/6JoJ7x-VxLA 的一篇旧帖子建议将毫秒存储在共享代码中,然后在每个平台上进行隐式转换为 js.Date 或 JodaTime。但我们确实需要一个通用接口,而这并没有提供。
  4. 李浩毅的优秀“Hands-on Scala.js”有一个简单的跨平台库 (http://www.lihaoyi.com/hands-on-scala-js/#ASimpleCross-BuiltLibrary),理论上可以扩展为在 /shared 中提供一个 API,委托给 jvm 上的 JodaTime和 Momento on js -- 但这听起来需要做很多工作。
  5. (稍后添加)https://github.com/soc/scala-java-time 基于贡献给 OpenJDK 的 java-time 实现。自述文件声称大多数东西都在工作。目前,这似乎是满足我需求的最有希望的方法。

那些在我之前的人有什么建议吗?现在,第四个选项似乎是我最好的选择(API 仅限于我实际使用的东西)。我希望有更好的东西。

【问题讨论】:

  • 也许这对你有帮助:pavkin.ru/…
  • 是的,该参考资料很有帮助。在我实际尝试过之后会更广泛地报告。谢谢。
  • 我发现 pavkin.ru 参考是一个非常复杂的解决方案,它似乎在 JVM 和 JS 上具有不同的编码约定。我没能取得好的进展。也不喜欢需要用日期/时间的东西参数化我所有的案例类的想法。也许我只是不理解事情,但我不认为我会走这条路。
  • 刚刚用谷歌搜索“scala java-time”以找到上面 (1) 中引用的工作。它返回了一个我今天从未见过的 github 项目——github.com/soc/scala-java-time。自述文件声称它基于贡献给 OpenJDK 的代码,因此具有允许将其翻译/改编/任何内容到 scala 的许可证。还声称在大多数工作方面取得了良好进展。
  • 上面引用的 scala-java-time 项目似乎已停止,但 github.com/cquiroz/scala-java-time 的一个分支已经完成了很多工作。这就是我要做的。

标签: scala.js


【解决方案1】:

我和你在同一条船上,我想出的最佳解决方案是cquiroz's scala-java-time library。从上面的 cmets 到您的问题,看来您最终落在了同一个地方!

我是通过谷歌搜索来到这里的,鉴于此解决方案比您上面提到的替代方案要好得多,让我们考虑将此问题标记为已解决,供未来的访问者使用。

【讨论】:

  • +1 用于 cquiroz 的 scala-java-time 实现。请参阅我截至 2017 年 5 月 17 日的最后一条笔记 :) 是的,我会检查是否已回答。
猜你喜欢
  • 1970-01-01
  • 2023-03-28
  • 2011-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-23
  • 2016-07-26
相关资源
最近更新 更多