2017-08-26 147 views
1

我有一个C#日期时间对象,我试图将其转换为谷歌日历事件链接日期时间字符串。我用的是日历链路发生器here和我看起来像这样获取日期时间字符串到谷歌日历格式

日期的日期时间字符串= 20170829T180000Z%2F20170829T190000Z

那里开始时间为11时,第二次是12: 00PM

如何格式化我的字符串以获取此?

我有这个迄今为止

var FormattedStartDateTime = newEvent.EventDateTime.ToString("yyyyDDmm") 

这将让我的日期,但我怎么得到休息?我认为其余的时间在几秒钟内,也许从1月1日开始,但不确定,最后是否有包含'T'和'Z'的方法?或者我需要在获得秒数后创建自己的字符串?

回答

-1

尝试

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

感谢。我认为这可能会更好,但不确定。 XmlConvert.ToString(newEvent.EventDateTime,XmlDateTimeSerializationMode.Utc)但这给了我“2017-09-04T05:00:00Z”是否有办法让它没有破折号和凸起,或者我应该删除它们 – user1186050

+0

东西不是用秒计算正确。我有一个9月6日@ 5AM的开始时间,并于上午6点结束。您给我的字符串创建了这个“20170906T050000Z%2F20170906T060000Z”,但是当我点击我的电子邮件中的链接时,它会在谷歌日历中打开一个日历事件,设置为2017年9月9日晚上10点到晚上11点。2017年5月9日 – user1186050

+0

可能因为时间是UTC格式(基本上是英国时区)。格式化字符串之前,您需要将本地时间转换为UTC。 –