Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

github.com/janestreet/timezone

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/janestreet/timezone

  • v0.16.0
  • Source
  • Go
  • Socket score

Version published
Created
Source

Timezone for OCaml

Timezone handles parsing timezone data and create [Timezone.t] that can later be used to manipulate time in core (using [Time] and [Time_ns] modules).

Timezone is currently only able to read the Timezone Database provided by IANA. It should work out of the box on Linux and macOS.

Where are the timezone data located ?

The location of the timezone files can be set using the environment variable TZDIR. If not set, [Timezone] will fallback to /usr/share/zoneinfo/.

What is the local timezone ?

The local timezone can be set using the environment variable TZ. If not set, [Timezone] will fallback to /etc/localtime. In a JavaScript context, we automatically set the environment variable TZ to Intl.DateTimeFormat().resolvedOptions().timeZone.

Compatibility with JavaScript.

The [Timezone] library can be used when constructing JavaScript applications with Js_of_ocaml.

Node.js

[Timezone] should work out of the box when running on a Node.js environment on Linux or macOS. The file-system is accessible in that case.

Web browsers

In a web browser environment, the [Timezone] library requires some additional setup. One should generate a JavaScript file that will embed all timezone data required by the application. This can be done by using a tool provided by js_of_ocaml called jsoo_fs. The generated JavaScript file will have to be included in the HTML page before the JavaScript program itself.

For example, one can embed all timezones in all-tz.js with the following command:

grep -r TZif /usr/share/zoneinfo -l | xargs -n 1 -I {} echo {}:{} | xargs jsoo_fs -o all-tz.js

Example

open Core

let now = Time_ns.now ()

let () =
  Time_ns.to_sec_string now ~zone:(Lazy.force (Timezone.local))
  |> print_endline

let () =
  Time_ns.to_sec_string now ~zone:(Timezone.find_exn "America/New_York")
  |> print_endline

Please report bugs and feature requests on GitHub.

You can find all of Jane Street's open-source libraries on GitHub.

Documentation can be found here.

FAQs

Package last updated on 25 Apr 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc