首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串"7/16/2013 7:00:00 AM“转换为DateTime

将字符串"7/16/2013 7:00:00 AM“转换为DateTime
EN

Stack Overflow用户
提问于 2013-08-03 05:22:53
回答 3查看 2.3K关注 0票数 2

我很想知道为什么这会给我一个错误

代码语言:javascript
复制
Convert.ToDateTime("7/16/2013 7:00:00 AM");

但如果我用

代码语言:javascript
复制
Convert.ToDateTime(("16/7/2013 7:00:00 AM");

如何将"7/16/2013 7:00 AM“转换为DateTime

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-03 05:41:08

您可以使用特定的区域设置,也可以自己定义格式化,如下所示:

代码语言:javascript
复制
 var dt = DateTime.ParseExact("7/16/2013 7:00:00 AM", "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);

我用过

  • M个月0-12没有前导零
  • D日号0-31,没有前导零
  • 所有数字的yyyy年
  • 不带前导零的12h格式的m小时0-12
  • mm分0-59与前导零
  • ss秒0-59,前导为零

作为文化,我确实指定了不变的文化,基本上在所有系统上都是英语。无论系统或线程的当前区域性如何,它都是相同的。

您的问题确实产生于这样一个事实:您确实尝试处理来自不同地区的日期,并从您的系统中处理相同的线程区域设置,这似乎是英语。若要正确处理所输入的日期,您需要知道输入了哪个区域设置才能正确解析它。有些地区确实会切换,例如月份和日期,就像在您的示例中那样。有些使用不同的分隔器,甚至其他文化也有不同的用途。.=‘chars 1’>千个分隔符和小数点.

德语使用,作为小数点和。就像千千万万的分离器。约会看上去就像

"24.12.2013 14:25:59“

没有AM/PM,没有/但是有很多点。

票数 7
EN

Stack Overflow用户

发布于 2013-08-03 05:24:59

您必须了解文化,请参阅以下链接:Convert.ToDateTime法

代码语言:javascript
复制
CultureInfo culture = new CultureInfo("en-US");

Convert.ToDateTime("7/16/2013 7:00:00 AM", culture );
票数 1
EN

Stack Overflow用户

发布于 2013-08-03 05:46:13

您可以简单地尝试使用DateTime.TryParse()

代码语言:javascript
复制
DateTime dt;
if(DateTime.TryParse("7/16/2013 7:00:00 AM", out dt))
    Console.Write(dt);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18029580

复制
相关文章

相似问题

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