Skip to content

Use this library to get extremely fast timestamping with: Fast, unambiguous representation of exact times in multiple timezones. Fast comparisons of timestamps in multiple timezones. Fast arithmetic operations on timestamps. Fast timezone conversion. Fast, unambiguous timestamp serialization. A broad range of time calculation and comparison util…

License

Notifications You must be signed in to change notification settings

FastFinTech/FFT.TimeStamps

Repository files navigation

FFT.TimeStamps

Source code NuGet package Full documentation

Use this library to get extremely fast timestamping with:

  1. Fast, unambiguous representation of exact times in multiple timezones.
  2. Fast comparisons of timestamps in multiple timezones.
  3. Fast arithmetic operations on timestamps.
  4. Fast timezone conversion.
  5. Fast, unambiguous timestamp serialization.
  6. A broad range of time calculation and comparison utilities that are particularly useful within FinTech applications.

Brief overview

  • The TimeStamp represents an exact, unambiguous moment in time.
  • The DateStamp represents a particular date.
  • The MonthStamp represents a particular month.
  • The TimeOfWeek represents a moment that occurs every week, 10am Monday, for example.
  • The TimeZoneCalculator provides extremely fast timezone conversions using cached conversion offset records.
  • The various Conversion iterators provide the fastest-possible way to perform timezone conversions on a stream of chronological-order times. They are also the best way to transform streams of TimeStamp objects to DateTime or DateTimeOffset objects or vice versa.

Background information

FFT.TimeStamps was developed in response to needs encountered whilst developing financial applications for exchanges and traders.

Let's take for example a trading platform, which deals with time in at least these timezones simultaneously:

  • The timezone that the user's computer is configured with.
  • The timezone of the chart being displayed to the user.
  • The timezone of each instrument's exchange.
  • The timezone of each instrument's settlement time.
  • The timezone of the trading session hours template applied to the chart.
  • The timezone of the instrument's trading hours as defined by the exchange.
  • The timezone in which historical market data is downloaded.
  • The timezone used whilst storing market data to disk.
  • The timezone of news events and other market events.
  • The timezone of any custom session such as custom volume profile sessions.
  • The timezone of exchange closures, particularly when the closure is only a partial day.
  • The timezone used in data retrieved from external services.
  • The timezone expected by external services consuming your data.
  • etc.

Trading applications, especially those residing on a server, typically process millions of exchange events every second. Each event comes with a timestamp, and the trading application must perform cross-timezone calculations and comparisons for EVERY single event that comes through the data feeds.

About

Use this library to get extremely fast timestamping with: Fast, unambiguous representation of exact times in multiple timezones. Fast comparisons of timestamps in multiple timezones. Fast arithmetic operations on timestamps. Fast timezone conversion. Fast, unambiguous timestamp serialization. A broad range of time calculation and comparison util…

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages