如何使用c#以英国格式生成datetime.now返回日期

时间:2015-03-04 20:22:15

标签: c# datetime

我希望datetime.now以UK格式返回datetime对象。它是在我的本地计算机上完成的,但是当我将代码上传到服务器时,它以美国格式执行

4 个答案:

答案 0 :(得分:2)

DateTime没有与之关联的任何格式。格式化仅用于演示。你可以这样做:

string formattedDate = DateTime.Now.ToString(CultureInfo.CreateSpecificCulture("en-GB"));

或提供特定/自定义格式,如:

string formattedDate = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss", 
                                       CultureInfo.InvariantCulture);

答案 1 :(得分:0)

  

我希望datetime.now以UK格式返回datetime对象。

没有这样的概念,只有int是“十六进制”或“十进制”的值。 DateTime只是DateTime - 您可以在将其转换为string时指定格式。理解内在值与它转换为文本后的外观之间的差异非常重要 - 很少有类型知道在转换自身时要使用的自定义可修改格式 - 它可以在外部提供(至于{{1 },数字等)或简单地修复。

在转换之前开始硬编码英国格式,我强烈建议你考虑完全你在做什么:

  • 理想情况下,首先要避免转换。很多时候,字符串转换是不必要的,可能会有问题。
  • 文本是否会被另一台机器消耗?使用ISO-8601标准格式。
  • 文字会被一个人消费吗?使用他们的文化而不是您决定的任意文化。
    • ...或将其显示在专用控件中......

答案 2 :(得分:0)

您可以使用ToString方法的重载:ToString(" dd / MM / yyyy"),或:ToString(" yy / MMM / dd")等等

在此处详细了解:https://msdn.microsoft.com/en-us/library/zdtaw1bw%28v=vs.110%29.aspx

另外听起来你可能想在web.config中配置你的(UI-)文化?无论您的美国/日本/欧洲服务器文化的文化如何,它都将采用相同的格式。

此处有关于此的更多信息:https://msdn.microsoft.com/en-us/library/bz9tc508%28v=vs.140%29.aspx

答案 3 :(得分:0)

LogDate = DateTime.UtcNow.AddHours(1);