3

有没有人使用 pywin32 pywintypes.DosDateTimetoTime 将 DOS 打包的日期/时间结构转换为 Python 中的可读时间格式?

我找不到太多关于如何使用此功能、需要哪些参数以及采用什么格式的文档。

我正在编写一个脚本来从旧的 DOS 备份文件中提取文件,基本上是在尝试复制旧的 DOS 恢复命令。我正在根据找到的备份文件的格式提取文件http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/dos/restore/brtecdoc.htm

谢谢,杰

4

1 回答 1

1

它需要两个参数(16 位整数),它们与DosDateTimeToFileTime的前两个参数 相同

您可以在 pywin32 的源代码 PyWinTypesmodule.cpp 中看到:

static PyObject *PyWin_DosDateTimeToTime(PyObject *self, PyObject *args)
{ 
    WORD wFatDate, wFatTime;
    if (!PyArg_ParseTuple(args, "hh", (WORD *)&wFatDate, (WORD *)&wFatTime))
        return NULL;
    FILETIME fd;
    If (!DosDateTimeToFileTime(wFatDate, wFatTime, &fd))
      return PyWin_SetAPIError("DosDateTimeToFileTime");
}

这些必须是此MSDN 链接中描述的格式,为方便起见,相关部分复制如下:

wFatDate [in]
The MS-DOS date. The date is a packed value with the following format.
    Bits    Description
    0-4     Day of the month (1–31)
    5-8     Month (1 = January, 2 = February, and so on)
    9-15    Year offset from 1980 (add 1980 to get actual year)

wFatTime [in]
The MS-DOS time. The time is a packed value with the following format.
    Bits    Description
    0-4     Second divided by 2
    5-10    Minute (0–59)
   11-15    Hour (0–23 on a 24-hour clock)
于 2012-10-01T16:35:41.777 回答