@js-joda/timezone
npm i @js-joda/timezone

@js-joda/timezone

🕑 Immutable date and time library for javascript

by js-joda

2.12.0 (see all)License:BSD-3-ClauseTypeScript:Built-InCategories:Node.js Timezone, Node.js World Times API
npm i @js-joda/timezone
Readme

@js-joda/timezone

npm version Travis Build Status Sauce Test Status Coverage Status Downloads/Month

Sauce Browser Matrix

Motivation

Implementation of the js-joda ZoneRulesProvider, providing the bindings to the iana tzdb, using latest zone file generated by moment-timezone

Usage

Node

Install joda using npm

npm install @js-joda
npm install @js-joda/timezone

es5

var jsJoda = require('@js-joda/core')
require('@js-joda/timezone')

var { LocalDateTime, ZoneId, ZonedDateTime } = jsJoda;
     
LocalDateTime
    .parse('2016-06-30T11:30')
    .atZone(ZoneId.of('Europe/Berlin'))
    .toString()  // 2016-06-30T11:30+02:00[Europe/Berlin]
     
ZonedDateTime
    .parse('2016-06-30T11:30+02:00[Europe/Berlin]') 
    .withZoneSameInstant(ZoneId.of('America/New_York'))
    .toString() // 2016-06-30T05:30-04:00[America/New_York]

ZonedDateTime
    .parse('2016-06-30T11:30+02:00[Europe/Berlin]')
    .withZoneSameLocal(ZoneId.of('America/New_York'))
    .toString() // 2016-06-30T11:30-04:00[America/New_York]

es6 / typescript

import { ZonedDateTime, ZoneId } from '@js-joda/core'
import '@js-joda/timezone'

const zdt = ZonedDateTime.now(ZoneId.of('America/New_York'))

Browser

<script src="./packages/core/dist/js-joda.js"></script>
<script src="./packages/timezone/dist/js-joda-timezone.js"></script>
<script>
    // copy all js-joda classes to the global scope
    for(let key in JSJoda) { this[key] = JSJoda[key]; }
        
    LocalDateTime
        .parse('2016-06-30T11:30')
        .atZone(ZoneId.of('Europe/Berlin'))
        .toString()  // 2016-06-30T11:30+02:00[Europe/Berlin]
         
    ZonedDateTime
        .parse('2016-06-30T11:30+02:00[Europe/Berlin]') 
        .withZoneSameInstant(ZoneId.of('America/New_York'))
        .toString() // 2016-06-30T05:30-04:00[America/New_York]

    ZonedDateTime
        .parse('2016-06-30T11:30+02:00[Europe/Berlin]')
        .withZoneSameLocal(ZoneId.of('America/New_York'))
        .toString() // 2016-06-30T11:30-04:00[America/New_York]
</script>

Reducing js-joda-timezone file size

If you don't need all the historical data that @js-joda/timezone provides, you can instead use one of the reduced files ize builds:

  • js-joda-timezone-10-year-range.js covers +- five years from the current version's release
  • js-joda-timezone-1970-2030.js covers from 1970 to 2030
  • js-joda-timezone-2012-2022.js covers from 2012 to 2022

To use one of these, just change your import path to the following format:

import '@js-joda/timezone/dist/js-joda-timezone-1970-2030'

Implementation details

  • This ZoneRulesProvider implemantion supplies all functionality that is required by the js-joda package.
  • Additional ZoneRules functionality like transitions(), etc. is not implemented.

License

  • @js-joda/timezone is released under the BSD 3-clause license:

  • The author of joda time and the lead architect of the JSR-310 is Stephen Colebourne.

  • The json versions of the iana tzdb are imported from and generated with moment-timezone.

Downloads/wk

45.9K

GitHub Stars

1.4K

LAST COMMIT

2mos ago

MAINTAINERS

2

CONTRIBUTORS

63

OPEN ISSUES

14

OPEN PRs

3
VersionTagPublished
2.12.0
latest
5mos ago
No tutorials found
Add a tutorial