C# 将日期时间字符串转换为google日历格式

C# 将日期时间字符串转换为google日历格式,c#,datetime,calendar,C#,Datetime,Calendar,我有一个c DateTime对象,我正试图将其转换为google日历事件链接日期时间字符串。我使用一个日历链接生成器,得到一个日期时间字符串,如下所示 日期=20170829T180000Z%2F20170829T190000Z 其中开始时间为上午11:00,第二次为下午12:00 如何格式化字符串以获取此信息 到目前为止,我有这个 var FormattedStartDateTime = newEvent.EventDateTime.ToString("yyyyDDmm") 这会告诉我日期,

我有一个c DateTime对象,我正试图将其转换为google日历事件链接日期时间字符串。我使用一个日历链接生成器,得到一个日期时间字符串,如下所示

日期=20170829T180000Z%2F20170829T190000Z

其中开始时间为上午11:00,第二次为下午12:00

如何格式化字符串以获取此信息

到目前为止,我有这个

var FormattedStartDateTime = newEvent.EventDateTime.ToString("yyyyDDmm")
这会告诉我日期,但我怎么才能知道剩下的呢?我想剩下的是几秒钟,也许是从1月1日开始,但不确定是否有办法在结尾加上“T”和“Z”?或者我需要在获得秒数后创建自己的字符串吗?

试试看

var output = String.Format("{0:yyyyMMdd}T{0:HHmmss}Z%2F{1:yyyyMMdd}T{1:HHmmss}Z", startDateTime, endDateTime);
我曾经


谢谢我认为这可能更好,但不确定。XmlConvert.ToStringnewEvent.EventDateTime,XmlDateTimeSerializationMode.Utc,但这给了我2017-09-04T05:00:00Z有没有办法在没有破折号和冒号的情况下获得它,或者我应该删除它们?这里的秒数计算不正确。我的出发时间是9月6日上午5点,结束时间是早上6点。您给我的字符串创建了这个20170906T05000Z%2F20170906T06000Z,但当我单击电子邮件中的链接时,它会在google日历中打开一个日历事件,设置为2017年9月5日晚上10点到2017年9月5日晚上11点,可能是因为时间是UTC格式,基本上是英国时区。在格式化字符串之前,您需要将本地时间转换为UTC。如果您发布修改后的代码,也许我可以看到问题所在。
Date.ToString("yyyyMMddTHHmmss")