> For the complete documentation index, see [llms.txt](https://chaoses-ib.gitbook.io/directory-opus/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://chaoses-ib.gitbook.io/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/date.zh.md).

# Date

**Date** 对象旨在简化日期变量的处理。它会自动转换为 ActiveX *VT\_DATE* 值，因此可以作为脚本语言的原生日期变量的直接替代。主要优势在于它保留了毫秒，而 *VT\_DATE* 的精度仅为秒。它还提供了一些用于操作日期的实用方法。[**Item**](/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/item.zh.md) 对象\*\* \*\*包含多个返回 **Date** 对象的属性。

可以使用 [**DOpusFactory**](/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/dopusfactory.zh.md)**.Date** 方法创建新的 **Date** 对象。

| 属性名称    | 返回类型   | 描述                                                    |
| ------- | ------ | ----------------------------------------------------- |
| *<默认值>* | *date* | 返回一个代表此 **Date** 对象值的 *VT\_DATE*（不包括毫秒）。              |
| day     | *int*  | 获取或设置日期的 *day* 值。                                     |
| hour    | *int*  | 获取或设置日期的 *hour* 值。                                    |
| min     | *int*  | 获取或设置日期的 *minute* 值。                                  |
| month   | *int*  | 获取或设置日期的 *month* 值。                                   |
| ms      | *int*  | 获取或设置日期的 *milliseconds* 值。                            |
| sec     | *int*  | 获取或设置日期的 *seconds* 值。                                 |
| wday    | *int*  | 获取日期的 *day-of-the-week* 值。0 = 星期日，1 = 星期一，2 = 星期二，等等。 |
| year    | *int*  | 获取或设置日期的 *year* 值。                                    |

<table data-header-hidden><thead><tr><th></th><th></th><th></th><th></th><th></th><th></th></tr></thead><tbody><tr><td>方法名称</td><td><strong>参数</strong></td><td>返回类型</td><td>描述</td><td></td><td></td></tr><tr><td>Add</td><td>&#x3C;int:value><br>&#x3C;string:type></td><td><em>none</em></td><td><p>将指定的值添加到日期。指定值的解释由 <em>type</em> 字符串控制：</p><p><em>none</em></p></td><td>*object:*<strong>Date</strong></td><td>返回一个新的 <strong>Date</strong> 对象，其值与当前对象相同。</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td><strong>l</strong></td><td>毫秒</td><td></td><td></td><td></td><td></td></tr><tr><td><strong>s</strong></td><td>秒</td><td></td><td></td><td></td><td></td></tr><tr><td><strong>m</strong></td><td>分钟</td><td></td><td></td><td></td><td></td></tr><tr><td><strong>h</strong></td><td>小时</td><td></td><td></td><td></td><td></td></tr><tr><td><strong>d</strong></td><td>天</td><td></td><td></td><td></td><td></td></tr><tr><td><strong>w</strong></td><td>周</td><td></td><td></td><td></td><td></td></tr><tr><td><strong>M</strong></td><td>月</td><td></td><td></td><td></td><td></td></tr><tr><td><strong>y</strong></td><td>年</td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Clone</td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Compare</td><td>&#x3C;date:other><br>[&#x3C;string:type>]<br>[&#x3C;int:tolerance>]</td><td><em>int</em></td><td><p>将此日期与 <em>other</em> 日期进行比较。返回值将为 <strong>0</strong>（相等）、<strong>1</strong>（大于）或 <strong>-1</strong>（小于）。</p><p>可选的 <em>type</em> 字符串控制比较方式：</p><p>[&#x3C;string:format>]<br>[&#x3C;string:flags>]</p></td><td><em>string</em></td><td><p>返回格式化的日期或时间字符串。<em>format</em> 和 <em>flags</em> 参数都是可选的。</p><p>如果不提供 <em>format</em>，则结果将包含日期和时间，格式与文件列表中的日期时间列相同。</p><p>如果将 <em>format</em> 设置为 <strong>"d"</strong> 或 <strong>"t"</strong>，则结果将仅为日期或时间部分，格式与文件列表中的日期或时间列相同。</p><p>文件列表的格式取决于用户的区域设置和 Windows 设置。如果您希望以用户期望的方式向用户呈现日期/时间，则应使用这些选项，但如果您需要以特定格式存储日期/时间，则不应使用这些选项。</p><p>当使用文件列表的格式（即，<em>format</em> 参数为空、<strong>"d"</strong> 或 <strong>"t"</strong>）时，您可以在第二个 <em>flags</em> 参数中选择性地传递一个或多个区分大小写的标志，以覆盖一些设置：</p><p>例如，要仅获取日期，使用用户的区域设置，但强制关闭星期名称：</p><pre><code>myDate.Format("d","n")
</code></pre><p>要获取日期和时间，使用用户的区域设置，但强制打开星期名称并强制关闭秒：</p><pre><code>myDate.Format("","Ns")
</code></pre><p><em>format</em> 还可以使用 <a href="/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-2/readme.zh-1/codes_for_date_and_time.zh.md">日期和时间代码</a> 中所示的语法，允许使用任意格式。例如，</p><pre><code>myDate.Format("D#yyyy-MM-dd T#HH:mm:ss")
</code></pre><p>这将返回一个类似 <strong>2023-07-28 15:45:26</strong> 的字符串。</p><p>在显式指定格式时，不应使用 <em>flags</em> 参数，它将被忽略。</p></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td><strong>s</strong></td><td>忽略秒。如果指定，则可选的 <em>tolerance</em> 参数指定以秒为单位的比较容差。</td><td></td><td></td><td></td><td></td></tr><tr><td><strong>sD</strong></td><td>忽略秒，并自动补偿夏令时。</td><td></td><td></td><td></td><td></td></tr><tr><td><strong>t</strong></td><td>仅比较时间</td><td></td><td></td><td></td><td></td></tr><tr><td><strong>d</strong></td><td>仅比较日期</td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Format</td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td><strong>N</strong></td><td>强制在过去一周内的日期中显示星期名称。"今天"、"星期一" 等。</td><td></td><td></td><td></td><td></td></tr><tr><td><strong>n</strong></td><td>强制关闭星期名称。</td><td></td><td></td><td></td><td></td></tr><tr><td><strong>S</strong></td><td>强制在时间中显示秒。</td><td></td><td></td><td></td><td></td></tr><tr><td><strong>s</strong></td><td>强制关闭秒。</td><td></td><td></td><td></td><td></td></tr><tr><td><strong>M</strong></td><td>强制在时间中显示毫秒。（如果存储的时间没有毫秒精度，则毫秒将为零。）</td><td></td><td></td><td></td><td></td></tr><tr><td><strong>m</strong></td><td>强制关闭毫秒。</td><td></td><td></td><td></td><td></td></tr><tr><td><strong>P</strong></td><td>强制将时间小时数填充为两位数字。</td><td></td><td></td><td></td><td></td></tr><tr><td><strong>p</strong></td><td>不强制填充时间小时数。</td><td></td><td></td><td></td><td></td></tr><tr><td>FromUTC</td><td><em>none</em></td><td>*object:*<strong>Date</strong></td><td>返回一个新的 <strong>Date</strong> 对象，其日期已从 UTC（基于本地时区）转换。</td><td></td><td></td></tr><tr><td>Reset</td><td><em>none</em></td><td><em>none</em></td><td>将日期重置为当前本地日期/时间。</td><td></td><td></td></tr><tr><td>Set</td><td>&#x3C;date:newdate></td><td><em>none</em></td><td><p>将此 <strong>Date</strong> 对象的值设置为提供的日期。<em>newdate</em> 可以是：</p><ul><li>另一个 <strong>Date</strong> 对象</li><li>"yyyymmdd" 格式的字符串</li><li>"yyyy-mm-dd hh:mm:ss.mmm" 格式的字符串（或其一部分）</li><li>JScript <strong>Date</strong> 对象</li><li>Unix 纪元时间值（自 1970 年 1 月 1 日以来的秒数）。</li><li>"now" 字符串（设置为当前时间）</li></ul></td><td></td><td></td></tr><tr><td>Sub</td><td>&#x3C;int:value><br>&#x3C;string:type></td><td><em>none</em></td><td>从日期中减去指定的值。参数与 <strong>Add</strong> 方法的参数相同。</td><td></td><td></td></tr><tr><td>ToUTC</td><td><em>none</em></td><td>*object:*<strong>Date</strong></td><td>返回一个新的 <strong>Date</strong> 对象，其日期已转换为 UTC（基于本地时区）。</td><td></td><td></td></tr></tbody></table>

|       |                                    |
| ----- | ---------------------------------- |
| **N** | 强制在过去一周内的日期中显示星期名称。"今天"、"星期一" 等。   |
| **n** | 强制关闭星期名称。                          |
| **S** | 强制在时间中显示秒。                         |
| **s** | 强制关闭秒。                             |
| **M** | 强制在时间中显示毫秒。（如果存储的时间没有毫秒精度，则毫秒将为零。） |
| **m** | 强制关闭毫秒。                            |
| **P** | 强制将时间小时数填充为两位数字。                   |
| **p** | 不强制填充时间小时数。                        |

|        |                                           |   |
| ------ | ----------------------------------------- | - |
| **s**  | 忽略秒。如果指定，则可选的 *tolerance* 参数指定以秒为单位的比较容差。 |   |
| **sD** | 忽略秒，并自动补偿夏令时。                             |   |
| **t**  | 仅比较时间                                     |   |
| **d**  | 仅比较日期                                     |   |
|        |                                           |   |
|        |                                           |   |
| Format |                                           |   |

|       |    |   |
| ----- | -- | - |
| **l** | 毫秒 |   |
| **s** | 秒  |   |
| **m** | 分钟 |   |
| **h** | 小时 |   |
| **d** | 天  |   |
| **w** | 周  |   |
| **M** | 月  |   |
| **y** | 年  |   |
|       |    |   |
|       |    |   |
| Clone |    |   |
