C# 我们可以将UTC时间转换为24小时格式吗?如果是的话,怎么办?

C# 我们可以将UTC时间转换为24小时格式吗?如果是的话,怎么办?,c#,asp.net,datetime,time,utc,C#,Asp.net,Datetime,Time,Utc,我有两个不同的列来存储日期和时间。一个是保存日期,另一个是时间。在我使用当地时间之前,它工作得很好。现在我想为亚利桑那州设置这个时间,以便将日期时间转换为UTC时间,并使用时区信息的方法转换时间获取亚利桑那州的时间。 现在我的问题是,我可以用它来获取日期,但在我节省时间的同时,它以12小时的格式出现,我想把它转换成24小时。 我的代码是 DateTime UniversalScheduleDate = Convert.ToDateTime(txtDate.Text).ToUniversalTim

我有两个不同的列来存储日期和时间。一个是保存日期,另一个是时间。在我使用当地时间之前,它工作得很好。现在我想为亚利桑那州设置这个时间,以便将日期时间转换为UTC时间,并使用时区信息的方法转换时间获取亚利桑那州的时间。 现在我的问题是,我可以用它来获取日期,但在我节省时间的同时,它以12小时的格式出现,我想把它转换成24小时。 我的代码是

DateTime UniversalScheduleDate = Convert.ToDateTime(txtDate.Text).ToUniversalTime();
TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(Session["TimeZone"].ToString());
objSchdl.SDate = TimeZoneInfo.ConvertTime(UniversalScheduleDate, timeZoneInfo);
DateTime UniversalStartTime = Convert.ToDateTime(txtStartTime.Text).ToUniversalTime();
objSchdl.Stime = TimeZoneInfo.ConvertTime(UniversalStartTime, timeZoneInfo).ToString();

请帮帮我

尝试使用DateTimeParse和DateTimeKind.Utc转换

例如:

DateTime UniversalScheduleDate = DateTime.SpecifyKind(
DateTime.Parse(txtDate.Text),DateTimeKind.Utc);

string formattedDate = DateTime.UniversalScheduleDate.ToString("HH:mm:ss tt");

尝试使用DateTimeParse和DateTimeKind.Utc转换

例如:

DateTime UniversalScheduleDate = DateTime.SpecifyKind(
DateTime.Parse(txtDate.Text),DateTimeKind.Utc);

string formattedDate = DateTime.UniversalScheduleDate.ToString("HH:mm:ss tt");
您需要将时区信息与字符串表示分离。它们是完全正交的概念

听起来您可能只需要在
ToString
调用中指定格式,例如

ToString("yyyy-MM-dd'T'HH:mm:ss", CultureInfo.InvariantCulture);

你也应该考虑用Spfic格式进行解析,并考虑使用哪种文化。

还要注意,由于夏令时转换,将本地时间转换为世界时间可能会有损。NET框架会让你相对痛苦地处理它,但是你应该记住这一点

最后,请注意,当您调用将使用系统本地时区进行转换的
ToUniversalTime
时,这真的是您想要的吗?

您需要将时区信息与字符串表示分开。它们是完全正交的概念

听起来您可能只需要在
ToString
调用中指定格式,例如

ToString("yyyy-MM-dd'T'HH:mm:ss", CultureInfo.InvariantCulture);

你也应该考虑用Spfic格式进行解析,并考虑使用哪种文化。

还要注意,由于夏令时转换,将本地时间转换为世界时间可能会有损。NET框架会让你相对痛苦地处理它,但是你应该记住这一点


最后,请注意,当您调用将使用系统本地时区进行转换的
ToUniversalTime
时,这真的是您想要的吗?

将您的时间设置为12小时格式。在将其保存到DB之前,您可以使用以下脚本将其更改为24小时格式并保存

希望下面的代码对您有所帮助

        Response.Write("With Seconds" + "<br />");

        Response.Write("24 Hour Date Format : " + DateTime.Now.ToString("HH:mm:ss tt") + "<br />");
        Response.Write("Without Seconds" + "<br />");

        Response.Write("24 Hour Date Format : " + DateTime.Now.ToString("HH:mm tt") + "<br />");
Response.Write(“用秒“+”
); Response.Write(“24小时日期格式:“+DateTime.Now.ToString”(“HH:mm:ss tt”)+”
); 响应。写入(“无秒”+“
”); Response.Write(“24小时日期格式:”+DateTime.Now.ToString(“HH:mm tt”)+“
”);
以12小时的格式安排您的时间。在将其保存到DB之前,您可以使用以下脚本将其更改为24小时格式并保存

希望下面的代码对您有所帮助

        Response.Write("With Seconds" + "<br />");

        Response.Write("24 Hour Date Format : " + DateTime.Now.ToString("HH:mm:ss tt") + "<br />");
        Response.Write("Without Seconds" + "<br />");

        Response.Write("24 Hour Date Format : " + DateTime.Now.ToString("HH:mm tt") + "<br />");
Response.Write(“用秒“+”
); Response.Write(“24小时日期格式:“+DateTime.Now.ToString”(“HH:mm:ss tt”)+”
); 响应。写入(“无秒”+“
”); Response.Write(“24小时日期格式:”+DateTime.Now.ToString(“HH:mm tt”)+“
”);
是的,我想将其转换为亚利桑那州的时区,我在CultureInfo上遇到了错误。要为其添加什么名称?@raman:您是否尝试查看文档?搜索“msdn CultureInfo”会很快找到它。我知道你想把它转换成亚利桑那州的时区,但是你最初的
ToUniversalTime()
电话呢?这将它从系统时区转换过来…谢谢我在谷歌上搜索了它。。谢谢你帮我raman 1小时前是的,我想把它转换成亚利桑那州的时区,我在CultureInfo上遇到了错误。要为它添加什么名称?@raman:你试过查看文档了吗?搜索“msdn CultureInfo”会很快找到它。我知道你想把它转换成亚利桑那州的时区,但是你最初的
ToUniversalTime()
电话呢?这将它从系统时区转换过来…谢谢我在谷歌上搜索了它。。谢谢你帮我raman 1小时前的CultureInfo命名空间系统.Globalization.CultureInfo命名空间系统.Globalization.CultureInfo示例前面的文本在这里非常不相关-是格式字符串将其转换为24小时格式。。。虽然您还包括AM/PM指示符(24小时时为奇数),并且没有指定区域性,但对于自定义格式字符串来说也是奇数。也不清楚原始输入是否表示世界时。示例前面的文本在这里非常不相关-是格式字符串将其转换为24小时格式。。。虽然您还包括AM/PM指示符(24小时时为奇数),并且没有指定区域性,但对于自定义格式字符串来说也是奇数。也不清楚原始输入是否表示世界时间。