This is an old revision of the document!

TimEL: Time-serie Expression Language

TimEL is a Java library to parse and evaluate expressions with time-series data:

// Compile the expression
Expression<?> expression = TimEL
        .parse("scale(scale(uniform(1), every(1, \"DAY_OF_YEAR\", \"UTC\")))")
// Evaluate and print the number of days from epoch
Interval interval = Interval.of(Instant.ofEpochMilli(0),;
System.out.println(TimEL.evaluate(expression, interval).next());

TimEL's aim is to provide an easy to use - yet powerful language - to model, aggregate and manipulate time-series. With TimEL you can:

  • Mix multiple time frames - for example you can sum daily data with hourly data, or even non-regular data like monthly data;
  • Express easily express recurrent quantities, like 10 units every hour;
  • Scale natively integral values (like consumptions) and averages;
  • Stream results without the need of having all the operands in memory;
  • Support integer, floating point and double expressions;
  • Extend: you can define your own types and functions;

TL;DR? Pick a random example in the online console!

TimEL requires Java 8 and will run in any J2SE or J2EE container.


I wish to thank ej-technologies for providing the TimEL development team with a free JProfiler license, a great Java Profiler.

  • home.1557672758.txt.gz
  • Last modified: 2019/05/12 14:52
  • by a.leofreddi