在Windows下使用Curl将Unix时间戳传递给REST API

在Windows下使用Curl将Unix时间戳传递给REST API,windows,unix,command-line,timestamp,Windows,Unix,Command Line,Timestamp,我正在使用curl从Windows命令行与JetBrains的YouTrack问题跟踪程序的RESTAPI交互。这是一个非常简单的过程,除了curl(构建为单个windows可执行文件)之外,没有其他实用程序。我想保持简单,但我遇到了一个问题。其中一个API希望我传递一个Unix时间戳,但没有Windows实用程序来生成时间戳。我想自己编写一个实用程序就足够简单了,但我不想重新发明轮子 我调用的API在这里: 我希望填充“releaseDate”字段 是否有一个工具可以在windows上生成自

我正在使用curl从Windows命令行与JetBrains的YouTrack问题跟踪程序的RESTAPI交互。这是一个非常简单的过程,除了curl(构建为单个windows可执行文件)之外,没有其他实用程序。我想保持简单,但我遇到了一个问题。其中一个API希望我传递一个Unix时间戳,但没有Windows实用程序来生成时间戳。我想自己编写一个实用程序就足够简单了,但我不想重新发明轮子

我调用的API在这里:

我希望填充“releaseDate”字段

是否有一个工具可以在windows上生成自包含的Unix时间戳,即我不需要安装cygwin或类似的大型工具

编辑:对于记录,这里是我最后要做的(它是*.bat文件的一部分):

type nul>pcmd.ps1
echo$timestamp=获取日期-UFormat%%s'>>pcmd.ps1
echo$timestamp=[Math]::Truncate($timestamp)>>pcmd.ps1
回声旋度“http://myserver/rest/admin?releaseDate=$timestamp&isReleased=true“-v-b yt--上传文件为空>>pcmd.ps1
pcmd.ps1型

powershell-对于本机MS powershell,这可能会起作用:

Get-Date -UFormat "%s" 

DateTime.Now.Ticks in Windows是自01/01/0001以来的“数百纳秒”数

Unix timestamp是自1970年1月1日以来的秒数

您应该能够通过减法获得目标时间戳

DateTime dateTimeIWant = new DateTime(2011,05,01);
int targetUnixTimeStamp = (dateTimeIWant.Ticks - new DateTime(1970,1,1).Ticks) / 10000;

.NET使用100 ns的间隔sind 0001-01-01。自1601-01-01以来,Windows主要使用100 ns的间隔以及一些不同的格式。
DateTime dateTimeIWant = new DateTime(2011,05,01);
int targetUnixTimeStamp = (dateTimeIWant.Ticks - new DateTime(1970,1,1).Ticks) / 10000;