[−][src]Struct hourglass::Timezone
A timezone.
There are several ways to create a new Timezone
. It can be loaded from the
IANA Time Zone Database
, following the Area/Location
pattern (e.g. Europe/Paris
) with Timezone::new
. A Timezone
can be created as a fixed offset from UTC
with Timezone::fixed
or UTC
itself with Timezone::utc
. Finally, the Timezone
can match the
system local timezone with Timezone::local
.
Example
let utc = hourglass::Timezone::utc(); let now = utc.now(); for tzname in &["Europe/Paris", "America/New_York", "Asia/Seoul"] { let tz = hourglass::Timezone::new(tzname).unwrap(); let now = now.project(&tz); println!("it is now {:?} in {}", now, tzname); }
Methods
impl Timezone
[src]
pub fn new(timezone: &str) -> Result<Self, TzError>
[src]
Try to load a new Timezone
.
It assumes that the zoneinfo data are located
under /usr/share/zoneinfo
.
pub fn local() -> Result<Self, TzError>
[src]
Load the local Timezone
set by the system,
disregarding the TZ
environment variable.
pub fn utc() -> Self
[src]
Returns the UTC
timezone.
pub fn fixed(sec: i32) -> Self
[src]
Returns a fixed offset to UTC
timezone.
The provided offset is in seconds.
pub fn posix(posix: &str) -> Result<Self, TzError>
[src]
Create a Timezone
from a POSIX TZ definition.
See man 3 tzset
for a description of the format.
pub fn now(&self) -> Datetime
[src]
Return the Datetime
representing now, relative to this Timezone
.
pub fn parse(&self, s: &str, fmt: &str) -> Result<Datetime, InputError>
[src]
Parse a Datetime
relative to this Timezone
according to the
given format. Timezone-related field are ignored. An InputError
is returned if the string does not match the format.
pub fn unix(&self, stamp: i64, nano: i32) -> Result<Datetime, InputError>
[src]
Create a new Datetime
from a Unix timestamp. The provided
timestamp represents Unix seconds from the Epoch, discarding any
leap seconds that may have happened in between. A Unix timestamp
is ambiguous on leap second insertion (e.g. 1435708800
is
equal to both 2015-06-30T23:59:60Z
and 2015-07-01T00:00:00Z
)
however, unix
will always choose the non-leap second. Return
an InputError
if nano
∉ [0, 999999999].
pub fn datetime(
&self,
year: i32,
month: i32,
day: i32,
hour: i32,
minute: i32,
second: i32,
nano: i32
) -> Result<Datetime, InputError>
[src]
&self,
year: i32,
month: i32,
day: i32,
hour: i32,
minute: i32,
second: i32,
nano: i32
) -> Result<Datetime, InputError>
Create a new Datetime
relative to this Timezone
.
An InputError
is returned if the following constraints do not hold:
month
∊ [1, 12]day
∊ [1, 31] and is valid within the monthhour
∊ [0, 23]minute
∊ [0, 59]second
∊ [0, 60]nano
∊ [0, 999999999]
Auto Trait Implementations
Blanket Implementations
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,