gilt / gfc-time

A library that contains time related Scala utility classes

Version Matrix

gfc-time Maven Central Build Status Coverage Status Join the chat at

A library that contains time related scala utility classes. Part of the Gilt Foundation Classes.

Getting gfc-time

The latest version is 0.0.7, which is cross-built against Scala 2.10.x, 2.11.x and 2.12.x.

If you're using SBT, add the following line to your build file:

libraryDependencies += "com.gilt" %% "gfc-time" % "0.0.7"

For Maven and other build tools, you can visit (This search will also list other available libraries from the gilt fundation classes.)

Contents and Example Usage


Various utilities for timing & reporting on blocks of code and scala Futures.

  • Format a nanosecond timespan into a human-readable string, like "37 us" or "45 days 08:55:01".

    val start = System.nanoTime() doSomething() val elapsed = Timer.pretty(System.nanoTime() - start) println(s"doSomething() took $elapsed")

  • Report ns result (Long value)

    val result = Timer.time(l => println(s"Operation took $l ns")) { // timed function, returning a result }

  • Report formatted result. The result String is using the best suitable time unit (e.g. "10 ns", "456 ms", "45 days 08:55:01" etc.)

    val result = Timer.time(s => println(s"Operation took ${s}")) { // timed function, returning a result }

  • Time the body, then calls pretty on the elapsed time to get a more human-friendly time String, then passes that to the "format" method.

    val result = Timer.time("Operation took %s", println _)) { // timed function, returning a result }

  • Similar functions as above are available to time scala Future completions.


A immutable lightweight wrapper around a millisecond timestamp.


Copyright 2018 Gilt Groupe, Inc.

Licensed under the Apache License, Version 2.0: