我使用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