我正在尝试设置一个CalDav客户端vor iCloud。我正在使用以下PROPFIND http curl:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<d:propfind xmlns:d="DAV:" xmlns:cs="http://calendarserver.org/ns/">
<d:prop>
<d:displayname/>
<cs:getctag/>
<d:resource-class/>
<d:getlastmodified/>
</d:prop>
</d:propfind>他们的反应如下:
<getlastmodified>Mon, 22 Jan 2018 20:03:49 GMT</getlastmodified>
<creationdate>2013-04-02T20:12:23Z</creationdate>
<auto-provisioned xmlns="urn:mobileme:server-to-server"/>我想知道我是否能以不同的格式得到标签的格式?最好是2013-04-02T20:12:23Z。
非常感谢!
发布于 2018-01-24 10:34:01
我假定“标记”指的是getlastmodified属性,它返回此日期:
Mon, 22 Jan 2018 20:03:49 GMT您正在询问是否可以让服务器以不同的格式返回该日期。不行,getlastmodified WebDAV属性的格式标准化为WebDAV RFC中的date 1123-日期 (4918)。
重要的是:getlastmodified不是标签!如果需要标记来进行同步,请使用ETag。构建CalDAV客户端文档很好地解释了这一点。
您可以做的是在shell中解析和重新格式化curl输出。您可以使用小星或其他工具这样做:
lastmod=$(curl ... | xmlstarlet sel -N x="DAV:" -t -v "//x:getlastmodified")
date -jf \
"%a, %d %b %Y %H:%M:%S GMT" \
+"%Y-%M-%dT%H:%M:%SZ" \
"${lastmod}"..。适应你的需要。
https://stackoverflow.com/questions/48390007
复制相似问题