BSON::Time — BSON type wrapper for date and time
| Use Case | Command | Description |
|---|---|---|
| Create timestamp for now | bson_time() | Returns a BSON::Time object representing the current UTC time |
| Create from Unix epoch seconds | bson_time( $secs ) | Accepts floating‑point seconds since epoch |
| Get seconds since epoch | $time->epoch | Floating‑point seconds (milliseconds ÷ 1000) |
| ISO‑8601 string | $time->as_iso8601 | YYYY-MM-DDThh:mm:ss.sssZ format |
| Convert to DateTime | $time->as_datetime | Loads and returns a DateTime object |
| Convert to DateTime::Tiny | $time->as_datetime_tiny | Lightweight alternative |
| Convert to Time::Moment | $time->as_time_moment | Fast, immutable time object |
| Stringify / numify | "$time", 0+$time | Overloads return epoch value |
version v1.12.2
use BSON::Types ':all';
bson_time(); # now
bson_time( $secs ); # floating point seconds since epoch
This module provides a BSON type wrapper for a 64‑bit date‑time value in the form of milliseconds since the Unix epoch (UTC only).
On a Perl without 64‑bit integer support, the value must be a Math::BigInt object.
value — An integer representing milliseconds since the Unix epoch. The default is 0.epoch — Returns the number of seconds since the epoch (i.e. a floating‑point value).as_iso8601 — Returns the “value” as an ISO‑8601 formatted string of the form YYYY-MM-DDThh:mm:ss.sssZ. The fractional seconds will be omitted if they are zero.as_datetime — Loads DateTime and returns the “value” as a DateTime object.as_datetime_tiny — Loads DateTime::Tiny and returns the “value” as a DateTime::Tiny object.as_mango_time — Loads Mango::BSON::Time and returns the “value” as a Mango::BSON::Time object.as_time_moment — Loads Time::Moment and returns the “value” as a Time::Moment object.TO_JSON — Returns a string formatted by as_iso8601.
If the BSON_EXTJSON option is true, it will instead be compatible with MongoDB’s extended JSON <https://github.com/mongodb/specifications/blob/master/source/extended-json.rst> format, which represents it as a document as follows:
If the BSON_EXTJSON environment variable is true and the BSON_EXTJSON_RELAXED environment variable is false, returns a hashref compatible with MongoDB’s extended JSON <https://github.com/mongodb/specifications/blob/master/source/extended-json.rst> format, which represents it as a document as follows:
{"$date" : { "$numberLong": "22337203685477580" } }
If the BSON_EXTJSON and BSON_EXTJSON_RELAXED environment variables are both true, then it will return a hashref with an ISO‑8601 string for dates after the Unix epoch and before the year 10,000 and a $numberLong style value otherwise.
{"$date" : "2012-12-24T12:15:30.500Z"}
{"$date" : { "$numberLong": "-10000000" } }
Both numification (0+) and stringification ("") are overloaded to return the result of epoch. Numeric comparison and string comparison are overloaded based on those and fallback overloading is enabled.
This software is Copyright (c) 2020 by Stefan G. and MongoDB, Inc.
This is free software, licensed under:
The Apache License, Version 2.0, January 2004
Generated by phpman v4.9.25-4-g0d844aa · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-07-07 09:10 @216.73.217.93
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Enhanced by LLM: deepseek-v4-pro / taotoken.net / www.chedong.com - original format