Csharp/C#教程:将不同格式的DateTime转换为特定的String格式分享


将不同格式的DateTime转换为特定的String格式

我从不同的机器获取System.datetime.now 。每个系统具有不同的日期时间格式作为下面的大小

 16-Oct-12 7:25:22 PM 16/10/2012 7:10:47 PM [DD/MM/YYYY] 10/16/2012 7:10:51 PM [MM/DD/YYYY] 

如何将不同格式的DateTime转换为特定的String格式?

 string sDateTime = DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt"); 

Google搜索的第一个结果: 来自MSDN的自定义日期时间格式字符串

返回日期时,您必须使用在其他计算机上明确提供的代码行:

 string sDateTime = DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt");] 

但是,这并不知道时区! 如果您的应用程序跨越多个时区,您也应该考虑到这一点!

或者,更好的是,您可以将Unix时间(从1970-01-01的毫秒数)返回为长时间,当然还有时区信息,如果机器之间的情况不同…(注意,.NET expoch时间是从0001-01-01虽然!)

回归大纪元时光

尝试使用Datetime类的TryParse方法

链接示例:

 string[] dateStrings = {"05/01/2009 14:57:32.8", "2009-05-01 14:57:32.8", "2009-05-01T14:57:32.8375298-04:00", "5/01/2008 14:57:32.80 -07:00", "1 May 2008 2:57:32.8 PM", "16-05-2009 1:00:32 PM", "Fri, 15 May 2009 20:10:57 GMT" }; DateTime dateValue; Console.WriteLine("Attempting to parse strings using {0} culture.", CultureInfo.CurrentCulture.Name); foreach (string dateString in dateStrings) { if (DateTime.TryParse(dateString, out dateValue)) Console.WriteLine(" Converted '{0}' to {1} ({2}).", dateString, dateValue, dateValue.Kind); else Console.WriteLine(" Unable to parse '{0}'.", dateString); } 

请注意,在示例中,它不适用于所有给定的字符串日期

您的示例的问题是最后两种格式16/10/2012 7:10:47 PM [DD/MM/YYYY]10/16/2012 7:10:51 PM [MM/DD/YYYY] 。 如果该值是10/11/2012 7:20:10 PM你怎么知道它是2012年10月11日或2012年11月10日?

 var input = new string []{ "16-Oct-12 7:25:22 PM", "16/10/2012 7:10:47 PM", "10/16/2012 7:10:51 PM"}; foreach (var date in input) { var result = DateTime.MinValue; if (DateTime.TryParse(date, out result)) { Console.WriteLine("Date value: {0}", result); } else { Console.WriteLine("Cannot parse value {0}", date); } } 

如你所见, "16/10/2012 7:10:47 PM"无法解析。

上述就是C#学习教程:将不同格式的DateTime转换为特定的String格式分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

  if (DateTime.TryParse(DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss tt"), out result)) sDateTime = DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss tt"); else { if (System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern.Equals("dd-MMM-yy")) sDateTime = DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss tt"); else sDateTime = DateTime.Now.Month +"/" + DateTime.Now.Day+ "/" + DateTime.Now.Year + " " + DateTime.Now.ToString("hh:mm:ss tt"); } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/954776.html

(0)
上一篇 2021年11月20日
下一篇 2021年11月20日

精彩推荐