Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/laget-se/laget.unixtime
A simple Epoch/UnixTime implementation...
https://github.com/laget-se/laget.unixtime
datetime epoch nuget unixtime
Last synced: about 1 month ago
JSON representation
A simple Epoch/UnixTime implementation...
- Host: GitHub
- URL: https://github.com/laget-se/laget.unixtime
- Owner: laget-se
- License: apache-2.0
- Created: 2023-03-24T12:08:51.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-10-22T07:12:26.000Z (3 months ago)
- Last Synced: 2024-10-23T10:21:38.773Z (3 months ago)
- Topics: datetime, epoch, nuget, unixtime
- Language: C#
- Homepage:
- Size: 79.1 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# laget.UnixTime
Implements a simple set of helpers to handle Epoch/Unix timestamps in .NET## Usages
There are a few ways to create a Epoch### `Epoch.Now`
> Will return the timestamp as if it was UTC.This method will return the current timestamp in seconds from the UnixTime-epoch.
### `Epoch.Zero`
> This method will always return the timestamp as if it was UTC.This method will return the beginning of the UnixTime-epoch (1 January 1970 00:00:00 UTC).
### `new Epoch(int value)`
> This method will always return the timestamp as if it was UTC.
> The year 2038 problem (also known as Y2038, Y2K38, or the Epochalypse) is a time formatting bug in computer systems with representing times after 03:14:07 UTC on 19 January 2038.This method will return the provided value (`int`) as an UnixTime-epoch, we do not recommend this way since it will overflow after 03:14:07 UTC on 19 January 2038.
### `new Epoch(long value)`
> This method will always return the timestamp as if it was UTC.This method will return the provided value (`long`) as an UnixTime-epoch.
### `new Epoch(DateTime datetime)`
> Will return the timestamp as if the DateTime was in UTC.This method will return the provided value (`DateTime`) as an UnixTime-epoch.
### TimeProvider
```c#
var tp = TimeProvider.System;
var epoch = tp.Now();
``````c#
var tp = TimeProvider.Utc;
var epoch = tp.Now();
``````c#
var timezone = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time");
var tp = TimeProvider.Timezone(timezone);
var epoch = tp.Now();
```### Extensions
We've provided a few ways to simplify the conversion of types that can be converted to a UnixTime-epoch value, such as `int`, `long`, and `DateTime`.#### DateTime
##### `ToEpoch()`
> This method will always return the timestamp as if it was UTC.This method will return the provided value (`DateTime`) as an UnixTime-epoch.
##### `ToEpoch(DateTimeKind kind)`
> This method will always return the timestamp as if it was UTC.This method will return the provided value (`DateTime`) with the provided `DateTimeKind` (`Local`, `Unspecified`, and `Utc`) taken into account as an UnixTime-epoch.
##### `ToEpoch(TimeZoneInfo timeZoneInfo)`
This method will convert the provided value (`DateTime`) to an UnixTime-epoch adjusted for provided time zone.#### Epoch
##### `BeginningOfMinute()`
This method will return the original Epoch but with the timespan adjusted to the beginning of the current minute.##### `EndOfMinute()`
This method will return the original Epoch but with the timespan adjusted to the end of the current minute.##### `BeginningOfHour()`
This method will return the original Epoch but with the timespan adjusted to the beginning of the current hour.##### `EndOfHour()`
This method will return the original Epoch but with the timespan adjusted to the end of the current hour.##### `BeginningOfDay()`
This method will return the original Epoch but with the timespan adjusted to the beginning of the current day.##### `EndOfDay()`
This method will return the original Epoch but with the timespan adjusted to the end of the current day.##### `BeginningOfMonth()`
This method will return the original Epoch but with the timespan adjusted to the beginning of the current month.##### `EndOfMonth()`
This method will return the original Epoch but with the timespan adjusted to the end of the current month.##### `BeginningOfYear()`
This method will return the original Epoch but with the timespan adjusted to the beginning of the current year.##### `EndOfYear()`
This method will return the original Epoch but with the timespan adjusted to the end of the current year.##### `ToDateTime()`
This method will convert the provided Epoch to a `DateTime`.##### `InTimezone(TimeZoneInfo timeZoneInfo)`
This method will return the current Epoch converted to a time zone specific adjusted Epoch.#### Integers
##### `(int)value.ToEpoch()`
> The year 2038 problem (also known as Y2038, Y2K38, or the Epochalypse) is a time formatting bug in computer systems with representing times after 03:14:07 UTC on 19 January 2038.This method will return the provided value (`int`) as an UnixTime-epoch, we do not recommend this way since it will overflow after 03:14:07 UTC on 19 January 2038.
##### `(long)value.ToEpoch()`
This method will return the provided value (`long`) as an UnixTime-epoch.