我使用ScalaJS和Play。我想在JS和JVM平台上使用的许多模型都涉及日期和时间。鉴于缺乏跨平台的日期/时间库,人们如何接近这一点?ScalaJS:跨平台日期的最新技术状态如何?
事情我是知道的:
- scalajs-java的时间项目(https://github.com/scala-js/scala-js-java-time)端口JDK8的java.time API来Scala.js。不幸的是,这还远远没有完成,通过提交日志来判断,似乎已经停滞。
- https://github.com/mdedetrich/soda-time是JodaTime到Scala/Scala.js的一个端口。但它尚未准备好用于生产。
- 旧帖子https://groups.google.com/forum/#!topic/scala-js/6JoJ7x-VxLA建议在共享代码中存储毫秒,然后在每个平台上隐式转换为js.Date或JodaTime。但我们确实需要一个通用的接口,但这并不是。
- 李浩逸优秀的“Hands-on Scala.js”有一个简单的跨平台库(http://www.lihaoyi.com/hands-on-scala-js/#ASimpleCross-BuiltLibrary),理论上可以扩展到在jvm和Momento中委托给JodaTime的/ shared中的API在js上 - 但这听起来像很多工作。
- (稍后添加)https://github.com/soc/scala-java-time基于对OpenJDK贡献的java-time的实现。自述文件声称大多数东西都在工作。现在,这看起来像是我最需要的方法。
来自那些谁在我之前的任何意见?现在第四个选项似乎是我最好的选择(API限于我实际使用的东西)。我希望有更好的东西。
也许这可以帮助你:http://pavkin.ru/cross-platform-polymorphic-datetime-values-in-scala-with-type-classes/ – sjrd
是的,该参考是有帮助的。我实际尝试过之后会更广泛地报告。谢谢。 – bwbecker
我发现pavkin.ru引用是一个非常复杂的解决方案,看起来在JVM上有不同的编码约定,而不是JS。我无法取得好的进展。也不喜欢需要用日期/时间的东西来参数化我的所有案例类的想法。也许我只是不理解事情,但我认为我不会走这条路。 – bwbecker