# Time

Time can be represented as, `HH:mm:ss.SSS` or `HHmmss.SSS` i.e it can be passed with or without separators `(: U+003A)`.

It uses a 24-hour clock system. Midnight is a special case and it may be referred to as `"00:00"` or `"24:00"`. However, ISO 8601-1: 2019 no longer permits `"24:00"`.

![The Time Structure](https://lh4.googleusercontent.com/m063muXgLoy8GdTG95tZ2bgbdKPFdG4she8hUl9c3WQ1wEx0UHiDDZt6D6pNwoqr3Gd3H_JMkuU901AcP-mspY2_PcuPd32gwNYK78_llRZGyQEwMZSpSDTjFWCpNtSXFle02OMg)

| Value |                      Description                     | Example |
| :---: | :--------------------------------------------------: | :-----: |
|  `HH` |             24-hour clock hour, (`00-23`)            |   `01`  |
|  `mm` |           Minutes, Decimal number (`00-59`)          |   `46`  |
|  `ss` |           Seconds, Decimal number (`00-59`)          |   `55`  |
| `SSS` | Milliseconds, three-digit decimal number (`000-999`) |  `500`  |

| **Time with separators:**       | **Time without Separators:** |
| ------------------------------- | ---------------------------- |
| `HH:mm:ss.SSS` = `05:24:34.555` | `HHmmss.SSS` = `052434.555`  |
| `HH:mm:ss` = `05:24:34`         | `HHmmss` = `052434`          |
| `HH:mm` = `05:24`               | `HHmm` = `0524`              |
| `HH` = `05`                     | `HH` = `05`                  |

The code snippet demonstrates how to define and use `time` In the Internet Object Document.

```yaml
# Set transactionTime with derived type as time
transactionTime: time
---
~ 05:24:34:555
~ 05:24:34      # parsed as 05:24:34:000
~ 05:24       # parsed as 05:24:00:000
~ 05         # parsed as 05:00:00:000

```

### MemberDef

The Time is derived from the String type, hence it shares the same [MemberDef](/schema-definition-language/data-types/string.md#memberdef) as the String. However, Time enforces additional constraints with the respective time format and the same is applicable to the Time MemberDef.\\


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.internetobject.org/schema-definition-language/data-types/string/string-derived-types/time.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
