C# 如何获取T07:07:45-0500格式的当前时间

C# 如何获取T07:07:45-0500格式的当前时间,c#,string,datetime,C#,String,Datetime,我想以T07:07:45-0500格式获取当前时间 我试过这样做: DateTime currentDate = DateTime.Now; String currentTime = currentDate.ToString("'T'HH':'mm':'ssK"); Console.WriteLine("DOB ==> " + dateOfBirth.ToString("yyyy-MM-dd") + currentTime); LocalDate dateOfBirth = ...; /

我想以
T07:07:45-0500
格式获取当前时间

我试过这样做:

DateTime currentDate = DateTime.Now;
String currentTime = currentDate.ToString("'T'HH':'mm':'ssK");
Console.WriteLine("DOB ==> " + dateOfBirth.ToString("yyyy-MM-dd") + currentTime);
LocalDate dateOfBirth = ...; // Wherever that comes from
OffsetDateTime now = OffsetDateTime.FromDateTimeOffset(DateTimeOffset.Now);
OffsetDateTime mixture = dateOfBirth.At(now.LocalTime).WithOffset(now.Offset);
var pattern = ...; // as before
Console.WriteLine(pattern.Format(mixture));
但是结果是
1986-07-11T07:07:45-05:00

我想要像1986-07-11T07:07:45-0500这样的结果

是否有办法以
T07:07:45-0500
格式获取当前时间

请帮我解决我的问题。

我认为.NET不允许这种格式。您可以很容易地使用我的项目,使用
DateTimeOffset.Now
如果您希望应用系统默认时区。(这可以明确地完成

例如:

var odt = OffsetDateTime.FromDateTimeOffset(DateTimeOffset.Now);
var pattern = OffsetDateTimePattern.CreateWithInvariantCulture(
    "yyyy-MM-dd'T'HH:mm:sso<+HH:mm>");
Console.WriteLine(pattern.Format(odt));
这使得组合值的方式更加清晰。

我认为偏移量的表示取决于
CurrentCulture
如何表示值。它可能是
-05:00
-0500
,或者干脆是-
05

根据评论,UTC偏移量格式似乎是硬编码的,不依赖于任何文化

您应该清楚地找到
字符的最后一个索引,并将其替换为空字符串。我认为在.NET Framework中没有其他解决方案

DateTime currentDate = DateTime.Now;
String currentTime = currentDate.ToString("'T'HH':'mm':'ssK");
currentTime = currentTime.Remove(currentTime.LastIndexOf(":"), 1);

我不认为偏移量格式是由DateTimeFormatInfo控制的。@JonSkeet-Hmm..可能是..但是这个
字符来自哪里?我几乎认为它来自
TimeSeparator
基于属性的
CurrentCulture
。老实说,我找不到任何与文档相关的东西。我相信这只是一个硬编码的部分UTC偏移量的格式。它可能使用TimeSeparator,但我不确定…@JonSkeet我想你是对的。
bn BD
文化有
作为
TimeSeparator
,但它仍然以
-05:00
格式打印偏移量值。你们两人对所有问题都给出了快速而有价值的回答:-):-。。谢谢。我会从用户那里得到出生日期,然后发送到服务器。我必须将当前时区发送到服务器。如果我在伊斯坦布尔,我必须发送它的时区。如果我在美国,我必须发送它的时区。我必须发送,比如,出生日期+带时区的当前日期。这就是我使用不同日期的原因。你们两人对所有问题都给出了快速而有价值的回答:-):-。。谢谢..@Vijay:这个值代表什么?“一天中某个特定时区的当前时间,即某个可能出生在不同时区的人的出生日期”在我看来不是很有意义。你基本上有两个不同的值——最好将它们分开。还请注意,您现在得到的不是时区,而是特定时间点与UTC的偏移量。他们不是一回事儿。@Vijay:奇怪。我会在野田佳彦的时候更新我的答案,告诉你更多的细节。