BACnet.Protocol.BACnetDateTime
(bacstack v0.1.0)
View Source
A BACnet DateTime is used to represent date with timepoints.
It wraps both BACnetDate and BACnetTime.
This module provides some helpers to convert DateTime and NaiveDateTime
into a BACnetDateTime and back.
Summary
Functions
Compares two BACnet DateTime.
Encodes the given BACnet DateTime into an application tag.
Converts a DateTime to a BACnet DateTime.
Converts a NaiveDateTime to a BACnet DateTime.
Parses a BACnet DateTime from BACnet application tags encoding.
Checks whether the given BACnet DateTime is a specific date-time value (every component is a numeric value).
Converts the BACnet DateTime to a DateTime.
Bang-version of to_datetime/1.
Converts the BACnet DateTime to a NaiveDateTime.
Bang-version of to_naive_datetime/1.
Creates a new BACnet DateTime for the current UTC datetime.
Validates whether the given BACnet datetime is in form valid.
Types
@type t() :: %BACnet.Protocol.BACnetDateTime{ date: BACnet.Protocol.BACnetDate.t(), time: BACnet.Protocol.BACnetTime.t() }
Represents a BACnet DateTime. It wraps both BACnet Date and Time.
Functions
Compares two BACnet DateTime.
Returns :gt if first datetime is later than the second,
and :lt for vice versa.
If the two datetimes are equal, :eq is returned.
Note that this is achieved by converting to DateTime and then
comparing them.
@spec encode(t(), Keyword.t()) :: {:ok, BACnet.Protocol.ApplicationTags.encoding_list()} | {:error, term()}
Encodes the given BACnet DateTime into an application tag.
For tagged encoding, you'll have to strip this down further using manual efforts.
@spec from_datetime(DateTime.t()) :: t()
Converts a DateTime to a BACnet DateTime.
@spec from_naive_datetime(NaiveDateTime.t()) :: t()
Converts a NaiveDateTime to a BACnet DateTime.
@spec parse(BACnet.Protocol.ApplicationTags.encoding_list()) :: {:ok, {t(), rest :: BACnet.Protocol.ApplicationTags.encoding_list()}} | {:error, term()}
Parses a BACnet DateTime from BACnet application tags encoding.
Checks whether the given BACnet DateTime is a specific date-time value (every component is a numeric value).
@spec to_datetime(t(), Calendar.time_zone(), Calendar.time_zone_database()) :: {:ok, DateTime.t()} | {:error, term()}
Converts the BACnet DateTime to a DateTime.
@spec to_datetime!(t(), Calendar.time_zone(), Calendar.time_zone_database()) :: DateTime.t() | no_return()
Bang-version of to_datetime/1.
@spec to_naive_datetime(t()) :: {:ok, NaiveDateTime.t()} | {:error, term()}
Converts the BACnet DateTime to a NaiveDateTime.
@spec to_naive_datetime!(t()) :: NaiveDateTime.t() | no_return()
Bang-version of to_naive_datetime/1.
@spec utc_now() :: t()
Creates a new BACnet DateTime for the current UTC datetime.
Validates whether the given BACnet datetime is in form valid.
It only validates the struct is valid as per type specification.