日期时间格式问题:如何获取相同的格式

5

我有关于使用日期时间格式的一些问题。

在项目的某个部分,客户端电脑向服务器发送它们的日期时间。 我们需要以与 dd/MM/yyyy 相同的格式获取这些日期时间。

然而,客户端电脑使用各种日期格式,因此它们发送了 像这样的各种日期时间格式,例如:

dd-MM-yyyydd/MM/yyyyMM-dd-yyyyMM/dd/yyyy

我该如何解决这个问题?


客户端是否可以不以固定格式(例如yyyy/MM/dd)发送日期? - stevehipwell
什么样的客户端?什么样的服务器?(我们在谈论 ASP.NET 吗?) - mrcrowl
我们的项目是基于窗口的项目。 - Indi
C#的Win Forms如何向另一个C#服务器应用程序进行提交?使用什么消息协议? - mrcrowl
1个回答

6

最好的方法是不要将日期值视为字符串。尽可能将其视为DateTime值处理。这么做,所有与格式相关的问题都会消失。如果你有一个客户端,用户以本地风格输入日期格式,请在输入后直接将其转换为DateTime,然后将DateTime值发送到系统中。

如果仍需要以字符串格式交换日期信息,请始终坚持使用标准化格式(例如ISO 8601)。


+1 ISO 8601(如在xs:DateTime中使用)也能够处理时区差异。 - StuartLC
我确定这是日期时间,因为它不是来自用户的输入。我的意思是,所有客户端都会发送系统的datetime.now.date,但是该格式取决于他们PC的日期时间格式风格。 - Indi
使用 System.DateTime.Today 获取日期不是更好的方式吗? - stevehipwell
是的,它也可以。但是,两个函数都返回当前使用格式下的日期时间。我的意思是,如果您的电脑日期时间格式为“dd-MM-yyyy”,它将返回“14-02-2011”,但如果您的格式为“MM-dd-yyyy”,它将返回“02-14-2011”。 - Indi
@Indi:DateTime 内部没有格式化。当您在调试器中查看该值或使用 ToString 输出时,它将以一种格式呈现,但这不是值本身的一部分。 - Fredrik Mörk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接