我的C#程序中有一个日期,例如:“ 01/15/2015”,我需要将其转换为这样的字符串:“ 2015-01-15T00:00:00Z”(即天)。我正在调用需要该格式的第三方API。
然后,我需要使用相同的日期并将其转换为以下日期:“ 2015-01-15T23:59:59Z”(即给定的一天结束)。
这就是我所拥有的东西,它似乎基于我已经进行的有限测试而起作用,但是我想知道这是否容易出错,或者是否有更好的方法来实现此目的。我以前从未使用过这种格式的日期,所以我想问问那些有更多经验的人。T23:59:59Z是服务器所在时区的一天结束时间吗?
程序示例:
class Program
{
static void Main(string[] args)
{
Search("01/15/2015");
}
private static void Search(string date)
{
//produce this:
//string startOfDay = "2015-01-15T00:00:00Z";
//string endOfDay = "2015-01-15T23:59:59Z";
DateTime temp1 = DateTime.Parse(date);
string startOfDay = temp1.ToString("yyyy-MM-ddTHH:mm:ssK") + "Z";
DateTime temp2 = DateTime.Parse(date);
string endOfDay = temp2.ToString("yyyy-MM-ddT") + "23:59:59Z";
}
}
一天的开始很容易;您可以使用.Date
。
仅供参考:请确保您检查文化。
class Program
{
static void Main(string[] args)
{
DateTime date;
if (DateTime.TryParse("01/15/2015", out date))
{
var startOfDay = date.Date;
Console.WriteLine(startOfDay.ToString("s") + "Z");
var endOfDay = date.ToEndOfDay();
Console.WriteLine(endOfDay.ToString("s") + "Z");
}
Console.ReadLine();
}
}
public static class DateExtensions
{
public static DateTime ToEndOfDay(this DateTime date)
{
return date.Date.AddDays(1).AddTicks(-1);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句