LoginSignup
1
0

More than 5 years have passed since last update.

AWS Lambda上の時間やタイムゾーン

Posted at

AWS Lambdaでプログラムを実行したタイムゾーンなど

Lambdaで日本時間に合わせてバッチを実行させたい時などどうすればよいか試してみた

テストコード

test.scala
  def handler(inputStream: InputStream, outputStream: OutputStream, context: Context): Unit = {
    //DateTime.now().getZone.getID()
    context.getLogger.log(s"DateTime.now().getZone.getID() : ${DateTime.now().getZone.getID()}")

    //DateTime.now()
    context.getLogger.log(s"DateTime.now() : ${DateTime.now()}")

    //DateTime.now(DateTimeZone.forID("Asia/Tokyo"))
    context.getLogger.log(s"""DateTime.now(DateTimeZone.forID("Asia/Tokyo")) : ${DateTime.now(DateTimeZone.forID("Asia/Tokyo"))}""")

    //LocalDate.now
    context.getLogger.log(s"LocalDate.now : ${LocalDate.now}")

    //LocalDate.now(DateTimeZone.forID("Asia/Tokyo"))}
    context.getLogger.log(s"""LocalDate.now(DateTimeZone.forID("Asia/Tokyo")) :  ${LocalDate.now(DateTimeZone.forID("Asia/Tokyo"))}""")

    //LocalDateTime.now
    context.getLogger.log(s"LocalDateTime.now : ${LocalDateTime.now}")

    //LocalDateTime.now(DateTimeZone.forID("Asia/Tokyo"))}
    context.getLogger.log(s"""LocalDateTime.now(DateTimeZone.forID("Asia/Tokyo")) :  ${LocalDateTime.now(DateTimeZone.forID("Asia/Tokyo"))}""")
  }

日本時間の2017/07/08 20:14頃に実行した
日本時間を前提としてプログラムを組む場合はDateTime.now(DateTimeZone.forID("Asia/Tokyo"))として取得するのがよさそう

DateTime.now().getZone.getID() : UTC

DateTime.now() : 2017-07-08T11:14:20.798Z

DateTime.now(DateTimeZone.forID("Asia/Tokyo")) : 2017-07-08T20:14:20.938+09:00

LocalDate.now : 2017-07-08

LocalDate.now(DateTimeZone.forID("Asia/Tokyo")) : 2017-07-08

LocalDateTime.now : 2017-07-08T11:14:20.941

LocalDateTime.now(DateTimeZone.forID("Asia/Tokyo")) : 2017-07-08T20:14:20.942
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0