2016-11-25 49 views
2

我使用ScalaJS和Play。我想在JS和JVM平臺上使用的許多模型都涉及日期和時間。鑑於缺乏跨平臺的日期/時間庫,人們如何接近這一點?ScalaJS:跨平臺日期的最新技術狀態如何?

事情我是知道的:

  1. scalajs-java的時間項目(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),理論上可以擴展到在jvm和Momento中委託給JodaTime的/ shared中的API在js上 - 但這聽起來像很多工作。
  5. (稍後添加)https://github.com/soc/scala-java-time基於對OpenJDK貢獻的java-time的實現。自述文件聲稱大多數東西都在工作。現在,這看起來像是我最需要的方法。

來自那些誰在我之前的任何意見?現在第四個選項似乎是我最好的選擇(API限於我實際使用的東西)。我希望有更好的東西。

+0

也許這可以幫助你:http://pavkin.ru/cross-platform-polymorphic-datetime-values-in-scala-with-type-classes/ – sjrd

+0

是的,該參考是有幫助的。我實際嘗試過之後會更廣泛地報告。謝謝。 – bwbecker

+0

我發現pavkin.ru引用是一個非常複雜的解決方案,看起來在JVM上有不同的編碼約定,而不是JS。我無法取得好的進展。也不喜歡需要用日期/時間的東西來參數化我的所有案例類的想法。也許我只是不理解事情,但我認爲我不會走這條路。 – bwbecker

回答

1

我和你在同一條船上,我想出的最佳解決方案是cquiroz's scala-java-time library。從閱讀上面的評論到你的問題,看起來你終於在同一個地方登陸了!

我來自谷歌搜索這裏,給出了比上面提到的替代方案更好的解決方案,讓我們考慮將此問題標記爲未來訪問者已解決。

+0

+1對於cquiroz的scala-java-time的實現。截至2017年5月17日,請參閱我的上一個注意事項:) 是的,我將檢查此答案。 – bwbecker