NeoFaker.Time (neo_faker v0.14.0)

Copy Markdown View Source

Functions for generating random times.

Provides utilities to generate random times, including times relative to now, times within a specific range, time zones, and named periods (morning, afternoon, evening, night). All functions support both Time struct and ISO 8601 string output.

Summary

Functions

Generates a random afternoon time (12:00–17:59).

Generates a random evening time (18:00–23:59).

Generates a random morning time (06:00–11:59).

Generates a random night time (00:00–05:59).

Returns the current UTC time.

Generates a random time zone string.

Functions

add(range \\ %{__struct__: Range, first: -24, last: 24, step: 1}, opts \\ [])

(since 0.10.0)
@spec add(Range.t(), Keyword.t()) :: Time.t() | String.t()

Generates a random time offset from now.

Adds a random number of units (hours by default) drawn from range to the current time. The default range is -24..24.

Options

  • :unit - Unit of the range. One of :hour (default), :minute, or :second.
  • :format - Output format. Either :struct (default) or :iso8601.

Examples

iex> NeoFaker.Time.add()
~T[15:22:10]

iex> NeoFaker.Time.add(-2..2, unit: :minute)
~T[07:23:10]

iex> NeoFaker.Time.add(0..10, format: :iso8601)
"15:22:10"

afternoon(opts \\ [])

(since 0.10.0)
@spec afternoon(Keyword.t()) :: Time.t() | String.t()

Generates a random afternoon time (12:00–17:59).

Options

  • :format - Output format. Either :struct (default) or :iso8601.

Examples

iex> NeoFaker.Time.afternoon()
~T[14:30:15]

iex> NeoFaker.Time.afternoon(format: :iso8601)
"15:45:22"

between(start \\ %{__struct__: Time, calendar: Calendar.ISO, hour: 0, microsecond: {0, 0}, minute: 0, second: 0}, finish \\ %{__struct__: Time, calendar: Calendar.ISO, hour: 23, microsecond: {0, 0}, minute: 59, second: 59}, opts \\ [])

(since 0.10.0)
@spec between(Time.t(), Time.t(), Keyword.t()) :: Time.t() | String.t()

Generates a random time between two times.

Both start and finish are inclusive. Defaults to the full day (~T[00:00:00]~T[23:59:59]).

Parameters

  • start - Start time, inclusive. Defaults to ~T[00:00:00].
  • finish - End time, inclusive. Defaults to ~T[23:59:59].
  • opts - Keyword list of options:
    • :format - Output format. Either :struct (default) or :iso8601.

Examples

iex> NeoFaker.Time.between()
~T[15:22:10]

iex> NeoFaker.Time.between(~T[00:00:00], ~T[23:59:59])
~T[19:30:11]

iex> NeoFaker.Time.between(~T[00:00:00], ~T[23:59:59], format: :iso8601)
"15:22:10"

evening(opts \\ [])

(since 0.10.0)
@spec evening(Keyword.t()) :: Time.t() | String.t()

Generates a random evening time (18:00–23:59).

Options

  • :format - Output format. Either :struct (default) or :iso8601.

Examples

iex> NeoFaker.Time.evening()
~T[20:30:15]

iex> NeoFaker.Time.evening(format: :iso8601)
"21:45:22"

morning(opts \\ [])

(since 0.10.0)
@spec morning(Keyword.t()) :: Time.t() | String.t()

Generates a random morning time (06:00–11:59).

Options

  • :format - Output format. Either :struct (default) or :iso8601.

Examples

iex> NeoFaker.Time.morning()
~T[08:30:15]

iex> NeoFaker.Time.morning(format: :iso8601)
"09:45:22"

night(opts \\ [])

(since 0.10.0)
@spec night(Keyword.t()) :: Time.t() | String.t()

Generates a random night time (00:00–05:59).

Options

  • :format - Output format. Either :struct (default) or :iso8601.

Examples

iex> NeoFaker.Time.night()
~T[02:30:15]

iex> NeoFaker.Time.night(format: :iso8601)
"03:45:22"

now(opts \\ [])

(since 0.10.0)
@spec now(Keyword.t()) :: Time.t() | String.t()

Returns the current UTC time.

A convenience wrapper that returns Time.utc_now() with optional formatting.

Options

  • :format - Output format. Either :struct (default) or :iso8601.

Examples

iex> NeoFaker.Time.now()
~T[15:22:10]

iex> NeoFaker.Time.now(format: :iso8601)
"15:22:10"

time_zone()

(since 0.10.0)
@spec time_zone() :: String.t()

Generates a random time zone string.

Returns an IANA time zone name from a predefined list, such as "Asia/Makassar" or "America/New_York".

Examples

iex> NeoFaker.Time.time_zone()
"Asia/Makassar"