AbsTime

baja. AbsTime

new AbsTime()

Description:
  • Represents a baja:AbsTime in BajaScript.

    AbsTime encapsulates an absolute point in time relative to a given
    time zone.

    When creating a Simple, always use the make method instead of
    creating a new Object.

Source:

Extends

Members

(static) DEFAULT :baja.AbsTime

Description:
  • Default AbsTime instance - maps to Java Epoch.

Source:

Default AbsTime instance - maps to Java Epoch.

Type:

Methods

decodeAsync(str, batchopt) → {baja.Simple|Promise.<baja.Simple>}

Description:
  • The string encoding of certain Simples may include Type information, or other data that may
    require asynchronous operations to decode. For instance, some Simples may function as
    "containers" for other Simples, and may include that Type information in the string encoding.
    That Simple would then need to import those Types before it could be fully decoded in the
    browser.

    baja.Facets is a great example of this. A Facets may contain FrozenEnum values that are
    defined by Types, such as baja:Weekday. For a Facets containing a Weekday to be fully
    constructed in the browser, the baja:Weekday Type must be imported first. Since importing
    a Type may require a network call, this Facets instance might not be able to be constructed
    synchronously, using only decodeFromString(). baja.Facets has itself implemented
    decodeAsync() to import any necessary Types.

    When implementing a Type Extension for a Simple, if your Simple references arbitrary Types that
    need to be imported when decoding your Simple, implement decodeAsync() and perform any Type
    imports (or other asynchronous operations) there.

    If you are writing code that decodes Simples from strings - that is, when you have a type spec
    and string encoding, and you need to be able to decode any kind of Simple - favor the use of
    decodeAsync, as it gives the individual Simple a chance to perform async operations to ensure
    that the decoded Simple is fully correct.

    The default implementation just returns decodeFromString directly.

    Prior to Niagara 4.14, decodeAsync() was only used in field editors. In 4.14 and later,
    decodeAsync() will be used by BajaScript itself to support asynchronous decoding of Simples
    when resolving ORDs and retrieving other data from the station.

    (Note: decodeAsync() cannot be used by the framework to decode frozen slots. If you
    have a frozen slot, whose definition is a Simple that would require the use of
    decodeAsync() to construct it, it will not work. The best approach would be to implement a
    Type Extension that would use the baja! plugin to preload all the types referenced by the
    default value of that frozen slot, so that decodeFromString would have all the information
    it needed to construct it synchronously.)

Source:
Inherited From:
Example
return Promise.resolve(baja.$(simpleTypeSpec).decodeAsync(stringEncoding))
  .then((simpleInstance) => {});
Parameters:
Name Type Attributes Description
str string
batch baja.comm.Batch <optional>

optional batch to use

Returns:

may return the Simple instance
directly, or a Promise resolving to same - so wrap in Promise.resolve()
if unsure.

Type
baja.Simple | Promise.<baja.Simple>

decodeFromString(str) → {baja.AbsTime}

Description:
  • Decode an AbsTime from a String.

Source:
Overrides:
Parameters:
Name Type Description
str String
Returns:
Type
baja.AbsTime

encodeToString() → {String}

Description:
  • Encode the AbsTime to a String.

Source:
Overrides:
Returns:
Type
String

equals(obj) → {Boolean}

Description:
  • Equality test.

Source:
Overrides:
Parameters:
Name Type Description
obj
Returns:
Type
Boolean

equivalent(obj) → {Boolean}

Description:
  • Equivalence test.

    equivalent() is used to compare if two Objects have equivalent
    state, but might not want to return true for equals since it
    it has implied semantics for many operations. The default
    implementation returns the result of baja.Object#equals.

Source:
Inherited From:
Parameters:
Name Type Description
obj
Returns:
Type
Boolean

getAgents(isopt, batchopt) → {Promise}

Description:
  • Returns a promise that resolves to the agent list for this Object.

Source:
Inherited From:
See:
Parameters:
Name Type Attributes Description
is Array.<String> <optional>

An optional array of filters to add to the
agent query.

batch baja.comm.Batch <optional>

An optional object used to batch network
calls together.

Returns:

A promise that will resolve with the Agent Info.

Type
Promise

getDataTypeSymbol() → {String}

Description:
  • Return the data type symbol.

Source:
Returns:
Type
String

getDate() → {baja.Date}

Description:
  • Return the date.

Source:
Returns:
Type
baja.Date

getDay() → {Number}

Description:
  • Return the day (1-31).

Source:
Returns:
Type
Number

getHour() → {Number}

Description:
  • Return the hour (0-23)

Source:
Returns:
Type
Number

getIcon() → {baja.Icon}

Description:
  • Return the Object's Icon.

Source:
Inherited From:
Returns:
Type
baja.Icon

getJsDate() → {Date}

Description:
  • Return a new JavaScript Date based on this AbsTime. The Date will represent
    the same instant as this AbsTime (as returned by getMillis()) but will
    use the browser's local time zone.

Source:
Returns:
Type
Date

getMillis() → {Number}

Description:
  • Get the number of milliseconds past the epoch represented by this AbsTime.

Source:
Returns:
Type
Number

getMillisecond() → {Number}

Description:
  • Returns milliseconds from the time (0-999)

Source:
Returns:
Type
Number

getMinute() → {Number}

Description:
  • Return minutes (0-59).

Source:
Returns:
Type
Number

getMonth() → {baja.FrozenEnum}

Description:
  • Return the month.

    When invoking this method, please ensure the baja:Month Type has been
    imported.

Source:
See:
Returns:

a baja:Month FrozenEnum

Type
baja.FrozenEnum

getOffset() → {Number}

Description:
  • Return the UTC offset.

Source:
Returns:
Type
Number

getSecond() → {Number}

Description:
  • Return seconds (0-59).

Source:
Returns:
Type
Number

getTime() → {baja.Time}

Description:
  • Return the time.

Source:
Returns:
Type
baja.Time

getType() → {Type}

Description:
  • Get the type of this instance.

Source:
Inherited From:
Returns:
Type
Type

getTypeDisplayName(cxopt) → {Promise.<string>|string}

Description:
  • Gets the friendly type display name for this object.

Source:
Since:
  • Niagara 4.10
Inherited From:
See:
  • baja.Type#getDisplayName
Parameters:
Name Type Attributes Description
cx Object <optional>

a context to be passed down to Type

Returns:

If no context is provided, the type
display name is returned synchronously as a string. If context provided,
the type display name is resolved via a promise as a string.

Type
Promise.<string> | string

getWeekday() → {baja.FrozenEnum}

Description:
  • Returns the day of the week.

Source:
See:
Returns:

a baja:Weekday FrozenEnum.

Type
baja.FrozenEnum

getYear() → {Number}

Description:
  • Return the year.

Source:
Returns:
Type
Number

isLeapDay() → {boolean}

Source:
Since:
  • Niagara 4.12
Returns:
Type
boolean

isNull() → {boolean}

Source:
Since:
  • Niagara 4.14
Returns:

if this represents the null AbsTime.

Type
boolean

make(objopt)

Description:
  • Make an AbsTime.

Source:
Overrides:
Example
// An Object Literal is used for the method's arguments...
  var at1 = baja.$("baja:AbsTime").make({
    date: baja.$("baja:Date").make({year: 1981, month: 5, day: 17}),
    time: baja.$("baja:Time").make({hour: 15, min: 30}),
    offset: 0
  });
  
  // ...or from a JavaScript Date...
  var at2 = baja.$("baja:AbsTime").make({jsDate: new Date()});
Parameters:
Name Type Attributes Description
obj Object <optional>

the Object Literal used for the method's arguments.

Properties
Name Type Attributes Description
date baja.Date <optional>
time baja.Time <optional>
offset Number | baja.Simple <optional>

(any baja:Number)

jsDate Date <optional>

if defined, this date is used for the date and time.

Returns:

baja.AbsTime

newCopy(exactopt)

Description:
  • Every value may be cloned using the newCopy method.

    Please note that Simples are immutable so they don't
    allocate a new instance.

Source:
Inherited From:
See:
Parameters:
Name Type Attributes Description
exact Boolean <optional>

true if an exact copy of the value should be
made (only valid in the Component architecture).

Returns:

a copy of the value (or the same instance if the value is a
Simple).

nextDay() → {baja.AbsTime}

Description:
  • returns a baja.AbsTime object that is 1 day after this baja.AbsTime

Source:
Since:
  • Niagara 4.12
Returns:
Type
baja.AbsTime

nextMonth() → {baja.AbsTime}

Description:
  • returns a baja.AbsTime object that is 1 month after this baja.AbsTime

Source:
Since:
  • Niagara 4.12
Returns:
Type
baja.AbsTime

nextYear() → {baja.AbsTime}

Description:
  • returns a baja.AbsTime object that is 1 year after this baja.AbsTime

Source:
Since:
  • Niagara 4.12
Returns:
Type
baja.AbsTime

prevDay() → {baja.AbsTime}

Description:
  • returns a baja.AbsTime object that is 1 day before this baja.AbsTime

Source:
Since:
  • Niagara 4.12
Returns:
Type
baja.AbsTime

prevMonth() → {baja.AbsTime}

Description:
  • returns a baja.AbsTime object that is 1 month before this baja.AbsTime

Source:
Since:
  • Niagara 4.12
Returns:
Type
baja.AbsTime

prevYear() → {baja.AbsTime}

Description:
  • returns a baja.AbsTime object that is 1 year before this baja.AbsTime

Source:
Since:
  • Niagara 4.12
Returns:
Type
baja.AbsTime

toDateString(obj) → {Promise.<String>}

Description:
  • Gets the date string for this baja.AbsTime

Source:
See:
Parameters:
Name Type Description
obj Object

the Object Literal for the method's arguments.

Returns:
Type
Promise.<String>

toDateTimeString(objopt) → {Promise.<String>}

Description:
  • Asynchronously get a String representation of the AbsTime.

    This method is invoked asynchronously. A Function callback or an Object
    literal that contains a Function callback must be supplied.

Source:
Example
absTime.toDateTimeString().then(function (dateTimeStr) {
    baja.outln("The date time is: " + dateTimeStr);
  });
Parameters:
Name Type Attributes Description
obj Object <optional>

the Object Literal for the method's arguments.

Properties
Name Type Attributes Description
ok function <optional>

(Deprecated: use Promise) the Function callback
that will be invoked once the time has been formatted.

fail function <optional>

(Deprecated: use Promise) the Function callback
that will be invoked if a fatal error occurs whilst formatting the string.

textPattern String <optional>

the text pattern to use for formatting.
If not specified, then the user's default
time format text pattern will be used.

TimeZone baja.TimeZone <optional>

timezone to use for formatting.
If not specified, then the system default
timezone will try to be determined,
otherwise UTC be used. (As of Niagara
4.9, the name "TimeZone" is supported to
match BFacets.TIME_ZONE. The old key
"timezone" is still supported.)

show Number <optional>

flags used to format the time. For more
information, please see baja.TimeFormat.

Returns:

promise to be resolved with the formatted string

Type
Promise.<String>

toDateTimeStringSync(objopt) → {String}

Description:
  • Synchronously get a String representation of the AbsTime.

    This method is invoked synchronously. The string result will be returned
    directly from this function.

    Notes on lexicons:

    • A lexicon will be used if it is passed in.
    • If no lexicon is passed in, the baja lexicon will be used if it has been
      cached locally.
    • If the baja lexicon has not been cached, strings units will be
      represented by their internal tag names (which are in English).
Source:
Parameters:
Name Type Attributes Description
obj Object <optional>

the Object Literal for the method's arguments.

Properties
Name Type Attributes Description
textPattern String <optional>

the text pattern to use for formatting.
If not specified, then the user's default
time format text pattern will be used.

show Number <optional>

flags used to format the time. For more
information, please see baja.TimeFormat.

lex <optional>

the baja lexicon

Returns:
Type
String

toDateTimeStringWithLongYear(objopt) → {Promise.<String>}

Description:
  • Asynchronously get a String representation of the AbsTime always showing the long year
    format if year part is available.

    This method is invoked asynchronously. A Function callback or an Object
    literal that contains a Function callback must be supplied.

Source:
Since:
  • Niagara 4.13
Example
absTime.toDateTimeStringWithLongYear().then(function (dateTimeStr) {
    baja.outln("The date time with long year is: " + dateTimeStr);
  });
Parameters:
Name Type Attributes Description
obj Object <optional>

the Object Literal for the method's arguments.

Properties
Name Type Attributes Description
textPattern String <optional>

the text pattern to use for formatting.
If not specified, then the user's default
time format text pattern will be used.

TimeZone baja.TimeZone <optional>

timezone to use for formatting.
If not specified, then the system default
timezone will try to be determined,
otherwise UTC be used. (As of Niagara
4.9, the name "TimeZone" is supported to
match BFacets.TIME_ZONE. The old key
"timezone" is still supported.)

show Number <optional>

flags used to format the time. For more
information, please see baja.TimeFormat.

Returns:

promise to be resolved with the formatted string

Type
Promise.<String>

toString() → {String|Promise.<String>}

Source:
Overrides:
See:
  • .toDateTimeString if obj is defined
  • .toDateTimeStringSync if obj is undefined
Returns:

a String if an undefined parameter object is passed, otherwise a Promise.

Type
String | Promise.<String>

toTimeString(obj) → {Promise.<String>}

Description:
  • Gets the time string for this baja.AbsTime

Source:
See:
Parameters:
Name Type Description
obj Object

the Object Literal for the method's arguments.

Returns:
Type
Promise.<String>

valueOf() → {Number}

Source:
Overrides:
Returns:

result of getMillis

Type
Number

(static) getDaysInMonth(year, month) → {number}

Source:
Since:
  • Niagara 4.12
Parameters:
Name Type Description
year number
month number | baja.FrozenEnum

either a baja:Month FrozenEnum or an integer (January = 0)

Returns:

days in month

Type
number

(static) isLeapYear(year) → {boolean}

Source:
Since:
  • Niagara 4.12
Parameters:
Name Type Description
year number
Returns:
Type
boolean

(static) make(objopt) → {baja.AbsTime}

Description:
  • Make an AbsTime.

Source:
Example
// An Object literal is used for the method's arguments...
  var at1 = baja.AbsTime.make({
    date: baja.Date.make({year: 1981, month: 5, day: 17}),
    time: baja.Time.make({hour: 15, min: 30}),
    offset: 0
  });
  
  // ...or from a JavaScript Date:
  var date = new Date();
  var at2 = baja.AbsTime.make({ jsDate: date });
  // the offset will be converted from JS Date style to BAbsTime style.
  baja.outln(at2.getOffset() === date.getTimezoneOffset() * -60000);
  baja.outln(at2.getMillis() === date.getTime());
Parameters:
Name Type Attributes Description
obj Object <optional>

the Object literal used for the method's arguments.

Properties
Name Type Attributes Description
date baja.Date <optional>
time baja.Time <optional>
offset Number | baja.Simple <optional>

UTC offset in milliseconds (any
baja:Number). This should be negative for negative time zones, e.g.
-04:00 corresponds to MILLIS_IN_HOUR * -4. Additionally, if timeZone is
set, this provided offset will be ignored.

jsDate Date <optional>

if defined, this date is used for the date and
time. The offset will be read directly from the JS date - the offset
argument, if provided, will be ignored.

timeZone baja.TimeZone <optional>

the timezone to base this date's
offset upon. If obj.jsDate is set, this timezone will be ignored and the
jsDate's offset will be used instead.

Returns:
Type
baja.AbsTime

(static) now() → {baja.AbsTime}

Description:
  • Make an AbsTime with the current date and time.

Source:
Returns:
Type
baja.AbsTime