获取 SyndicationFeed 上次更新时间(以毫秒为单位)
Get SyndicationFeed LastUpdatedTime upto Miliseconds
我正在通过以下方法阅读 SyndicationFeed。
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = new NetworkCredential("username", "password");
// Create the reader.
XmlReaderSettings settings = new XmlReaderSettings();
settings.XmlResolver = resolver;
XmlReader reader = XmlReader.Create(feedUrl, settings);
SyndicationFeed feed = SyndicationFeed.Load(reader);
但是,从 Feed 中,我需要最多毫秒的上次更新时间,但代码只返回到秒部分。
feed.LastUpdatedTime 是 DateTimeOffset,值为 {06/02/2021 00:06:30 +00:00}
// where as this is the data I get back in Postman
<updated>2021-02-06T00:06:30.652Z</updated>
知道如何从原子提要中获取毫秒部分吗?
我在回答我自己的问题,基本上,我们不会从 Syndication 获得这些数据
Feed(总是 returns 0 毫秒,看起来像是 SyndicationFeed class 中的错误),所以我们需要直接解析 XML 并从那里提取数据。这是我为其他寻找类似问题的人提供的解决方案。
DateTime GetUpdatedDateTime(string feeddURl)
{
const string CustomUtcDateTimeFormat = "yyyy-MM-dd HH:mm:ss:fff"; // 2021-02-09 01:23:34:651
using(XmlReader reader = XmlReader.Create(feedUrl))
while (reader.Read())
{
if (reader.Name == "updated")
{
try
{
var lastUpdatedDateTime = reader.ReadElementContentAsString();
return DateTime.ParseExact(lastUpdatedDateTime, CustomUtcDateTimeFormat);
}
catch(Exception ex)
{
return DateTime.MinValue;
}
}
}
return DateTime.MinValue;
}
我正在通过以下方法阅读 SyndicationFeed。
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = new NetworkCredential("username", "password");
// Create the reader.
XmlReaderSettings settings = new XmlReaderSettings();
settings.XmlResolver = resolver;
XmlReader reader = XmlReader.Create(feedUrl, settings);
SyndicationFeed feed = SyndicationFeed.Load(reader);
但是,从 Feed 中,我需要最多毫秒的上次更新时间,但代码只返回到秒部分。
feed.LastUpdatedTime 是 DateTimeOffset,值为 {06/02/2021 00:06:30 +00:00}
// where as this is the data I get back in Postman
<updated>2021-02-06T00:06:30.652Z</updated>
知道如何从原子提要中获取毫秒部分吗?
我在回答我自己的问题,基本上,我们不会从 Syndication 获得这些数据 Feed(总是 returns 0 毫秒,看起来像是 SyndicationFeed class 中的错误),所以我们需要直接解析 XML 并从那里提取数据。这是我为其他寻找类似问题的人提供的解决方案。
DateTime GetUpdatedDateTime(string feeddURl)
{
const string CustomUtcDateTimeFormat = "yyyy-MM-dd HH:mm:ss:fff"; // 2021-02-09 01:23:34:651
using(XmlReader reader = XmlReader.Create(feedUrl))
while (reader.Read())
{
if (reader.Name == "updated")
{
try
{
var lastUpdatedDateTime = reader.ReadElementContentAsString();
return DateTime.ParseExact(lastUpdatedDateTime, CustomUtcDateTimeFormat);
}
catch(Exception ex)
{
return DateTime.MinValue;
}
}
}
return DateTime.MinValue;
}