# NodaTime
[Noda Time](https://nodatime.org) is a better API for handling dates and times
## Converting Between Types
<div>
<img src="https://nodatime.org/3.1.x/userguide/conversions.svg" style="background: white; padding: 10px" />
</div>
To get the time zone for `InZone` you can use `DateTimeZoneProviders.Tzdb.GetSystemDefault()` to get the default zone.
## `Period` vs `Duration`
A `Period` can be added or subtracted to a `LocalDateTime`. A period of 1 month isn't always the same concept because the difference between February 1 and March 1 is not the same as the difference between March 1 and April 1.
A `Duration` is always the same. It is expressed as a number of nanoseconds.
Because a `Period` is a concept that requires a calendar, it cannot be used to operate on Instants. Similarly, a `Period` can be a converted to a `Duration`, but only when it does not include calendar-specific concepts (months and years).
## Getting Current Week Number
```fsharp
let utc = s.Time.InUtc()
WeekYearRules.Iso.GetWeekYear(utc.Date)
```
## Parsing Instants with Fleece
![[Fleece Json Library#Parsing Optional NodaTime Instants in Fleece 0 10]]