首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CalDav Propfind响应中的日期格式-如何更改?

CalDav Propfind响应中的日期格式-如何更改?
EN

Stack Overflow用户
提问于 2018-01-22 20:48:53
回答 1查看 564关注 0票数 1

我正在尝试设置一个CalDav客户端vor iCloud。我正在使用以下PROPFIND http curl:

代码语言:javascript
复制
<?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>

他们的反应如下:

代码语言:javascript
复制
    <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。

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-24 10:34:01

我假定“标记”指的是getlastmodified属性,它返回此日期:

代码语言:javascript
复制
Mon, 22 Jan 2018 20:03:49 GMT

您正在询问是否可以让服务器以不同的格式返回该日期。不行,getlastmodified WebDAV属性的格式标准化为WebDAV RFC中的date 1123-日期 (4918)。

重要的是:getlastmodified不是标签!如果需要标记来进行同步,请使用ETag构建CalDAV客户端文档很好地解释了这一点。

您可以做的是在shell中解析和重新格式化curl输出。您可以使用小星或其他工具这样做:

代码语言:javascript
复制
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}"

..。适应你的需要。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48390007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档