1. someone7140

    Posted

    someone7140
Changes in title
+Scalaで日付を丸めたいときのサンプルコード
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,33 @@
+## 概要
+Scalaで日付を扱う際に、丸めを行いたいときのサンプルコードです。丸目とは例えば日付単位であれば、12月1日の1時1分1秒を、12月1日の0時0分0秒にしたいときのことを指します。
+
+## 方法
+JavaのライブラリであるJoda-Timeを使用して丸目をおこないます。Javaでの対応は@rubytomato@githubさんの[Joda-Timeを使った日付処理まとめ](https://qiita.com/rubytomato@github/items/a9abb4f766e905c0c227)のroundの項にありますので、Scalaでも同様の方法で実装します。
+ScalaではJoda-Timeをラッパーした「nscala-time」というライブラリがあるので、nscala-timeを使用します。(nscala-timeの詳細は@yhidaiさんの[nscala-timeで学ぶImplicit Conversion](https://qiita.com/yhidai/items/c7248201328827299d90)を参照)
+
+## サンプルコード
+
+```NscalaTest.scala
+import com.github.nscala_time.time.Imports._
+
+object NscalaTest{
+ def main() = {
+ // (1)現在時刻
+ println(DateTime.now)
+ // (2)minute以降を切り捨て
+ println(DateTime.now.hour.roundFloor)
+ // (3)hour以降を切り捨て
+ println(DateTime.now.day.roundFloor)
+ }
+}
+```
+現在日時が2018/12/1 01:05:41の場合の、(1)~(3)の結果は以下の通りとなります。
+
+```
+// (1)
+2018-12-01T01:05:41.788+09:00
+// (2)
+2018-12-01T01:00:00.000+09:00
+// (3)
+2018-12-01T00:00:00.000+09:00
+```