首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >DateTime.ToString从所有格式到dd/MM/YYYY?

DateTime.ToString从所有格式到dd/MM/YYYY?
EN

Stack Overflow用户
提问于 2015-05-07 09:26:02
回答 3查看 1.3K关注 0票数 2

我有一个简单的例程,它解析一个DateTime.Now &在上面执行一个.ToString(),将它添加到要保存的文件名中:

代码语言:javascript
代码运行次数:0
运行
复制
 DateTime timeNow = DateTime.Now;
 string dateNow = timeNow.ToShortDateString();
 DateTime dateTime = DateTime.ParseExact(dateNow, "dd/MM/yyyy", CultureInfo.InvariantCulture);          
 string DateString = dateTime.ToString("dd-MMM-yy");
 string fileName = string.Concat("MyArticle_" + region + "_" + DateString + fileExtension);

这是结果输出字符串:

代码语言:javascript
代码运行次数:0
运行
复制
MyArticle_Africa_07-May-15.PNG

这一切都是好的,直到我让一个用户在美国的机器,其中的DateTime设置是不同的。

05-07-15

在这种情况下,我的ParseExact()方法抛出一个异常,因为输入不是有效的日期时间。是否有一种方法可以容纳所有日期时间输入&解析到dd/MM/YYYY?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-05-07 09:27:31

实际上,你不需要所有这些代码行。你只需要这个:

代码语言:javascript
代码运行次数:0
运行
复制
 // We just have to pass to the ToString
 // method the exact format we want. Under the hood the CLR has
 // the know how to execute this command and you get the desired 
 // output.
 string DateString = DateTime.Now.ToString("dd-MMM-yy");

此外,当我们想得到您提到的异常时,我们使用DateTime.ParseExact方法。说到这里,我的意思是我们知道日期的字符串表示形式,我们想要解析的是确切的格式,我们已经在DateTime.ParseExact中指定了,如果其中一些没有,我们不想知道它。通常,我们会有一个try catch子句,而在catch子句中我们会记录这一点。

票数 6
EN

Stack Overflow用户

发布于 2015-05-07 09:28:09

你得试试这个:

代码语言:javascript
代码运行次数:0
运行
复制
string DateString = DateTime.Now.ToString("dd-MMM-yy");
 string fileName = String.Concat("MyArticle_" + region + "_" + DateString +  fileExtension);
票数 2
EN

Stack Overflow用户

发布于 2015-05-07 09:37:10

您甚至不需要将DateTime.Now转换为字符串,您可以使用String.Format一步创建整个字符串:

代码语言:javascript
代码运行次数:0
运行
复制
var fileName = String.Format("MyArticle_{0}_{1:dd-MMM-yy}{2}",
                             region,DateTime.Now,fileExtension);

代码语言:javascript
代码运行次数:0
运行
复制
var fileName = String.Format(CurrentInfo.InvariantCulture,
                             "MyArticle_{0}_{1:dd-MMM-yy}{2}",
                             region,DateTime.Now,fileExtension);

以避免国际化问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30096961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档