【问题标题】:Turbo Pascal for DOS - How to get the current timezone offsetTurbo Pascal for DOS - 如何获取当前时区偏移量
【发布时间】:2014-02-18 20:44:49
【问题描述】:

我需要对使用 Turbo Pascal 7 编写的旧版应用程序进行修改,这需要我找出当前时区偏移量。该程序在 32 位 XP 环境中的 DOS 框中运行。

有人知道这样做的方法吗?

** 编辑 **

我可能应该补充一点,这个问题的原因是因为我想知道 UTC 时间,即我想要一种从 DOS 调用 GetSystemTime 等效项的方法。

【问题讨论】:

    标签: utc dos timezone-offset turbo-pascal


    【解决方案1】:

    尝试在 Pascal 中使用 Exec 语句通过管道运行 DOS systeminfo 命令输出,然后使用 Pascal 解析结果输出。示例...

    c:\>systeminfo | find "Time Zone"
    Time Zone:                 (UTC-05:00) Eastern Time (US & Canada)
    
    c:\>
    

    在 Windows 7 上需要几秒钟才能获得结果,但在 XP 上应该运行得更快。

    【讨论】:

    • 聪明。可惜花了这么长时间。可惜没有命令行选项来提供信息的子集。我可能会尝试这个。也许进一步修剪命令的输出并设置一个环境变量,假设我也可以在 DOS 中读取它,这会快得多。 systeminfo 命令只能偶尔运行 - 比如说每小时一次。
    • 你可以使用除了 sysinfo(你安装的东西)之外的另一个 DOS 程序,或者尝试从 Turbo Pascal 的注册表中获取设置。
    • 嗯...@Rick,TP 似乎不支持注册表。
    • 最好是迁移到Free Pascal,兼容性高,可以访问windows资源,不会被路径中的空格搞糊涂。
    猜你喜欢
    • 1970-01-01
    • 2012-08-24
    • 2014-07-27
    • 2015-01-03
    • 2018-11-29
    • 2019-03-14
    • 2020-08-17
    • 2017-12-13
    • 1970-01-01
    相关资源
    最近更新 更多