如何将“dd-MM-yyyy”转换为“yyyy-MM-dd”? [复制]
Posted
技术标签:
【中文标题】如何将“dd-MM-yyyy”转换为“yyyy-MM-dd”? [复制]【英文标题】:How to convert 'dd-MM-yyyy' to 'yyyy-MM-dd'? [duplicate] 【发布时间】:2016-10-17 15:04:16 【问题描述】:我有一个 mysql DateTime 列,我需要使用 C# 进行查询。问题是,当我尝试使用“dd-MM-yyyy”的 DateTime 格式查询列时,它不会带回任何数据,但是当我使用“yyyy-MM-dd”格式时它会返回。我想知道如何将我的 DateTime 转换为那种格式?
例如:
string yyyyMMdd = DateTime.Now.StartOfWeek(DayOfWeek.Monday).ToString("yyyy-MM-dd");
//Insert code to parse into yyyy-MM-dd DateTime format-
这得到了我想要的string
格式,但该列是DateTime
,每次我尝试解析它时,它都会返回到“dd-MM-yyyy”格式。
伙计,堆栈溢出是如此善变。这个问题是不同的,因为我不是在问如何将 DateTime 格式化为不同的文化格式。我在问如何将 DateTime 从 'yy-MM-yyyy' 格式化为 'yyyy-MM-dd' 格式。
为什么投反对票?诚实地。
【问题讨论】:
您不“解析日期时间”,而是对其进行格式化。解析是你对字符串所做的事情。 DateTime 值没有格式,将其转换为字符串的行为会选择一种格式。如果您希望以特定方式显示 DateTime 值,您需要控制格式。请澄清问题的真正含义。 您根本不需要这样做,您应该使用参数化查询并将DateTime
作为参数传递...
你的解决方案是错误的,不要浪费你的时间去做这件事。您的问题应该是如何将日期时间值解析为 SQL。
@AndrewKilburn - DateTime
没有“不同的文化”。 DateTime
只是一个值类型。只有当您从字符串转换或转换为字符串时才会涉及文化。 DateTime
的值只是保存在 private UInt64 dateData;
字段中。
@AndrewKilburn - 你得到了反对票,因为人们试图帮助你,但你的回应是“堆栈溢出是如此善变”和“呃”和“为什么反对票?老实说。”
【参考方案1】:
DateTime.Parse() 将尝试找出给定日期的格式,并且通常做得很好。如果您可以保证日期始终采用给定格式,那么您可以使用 ParseExact():
//string s = "2011-03-21";
string yyyyMMdd = DateTime.Now.StartOfWeek(DayOfWeek.Monday).ToString("yyyy-MM-dd");
DateTime dt = DateTime.ParseExact(yyyyMMdd , "yyyy-MM-dd", CultureInfo.InvariantCulture);
Source
【讨论】:
【参考方案2】:你总是可以尝试使用:
DateTime testdate = DateTime.Now;
testdate.ToString("yyyy-MM-dd");
只需将 DateTime 设置为您可能需要的任何日期和时间。
【讨论】:
否,因为这将返回一个字符串,而不是 DateTime 这可能会帮助你MSDN link以上是关于如何将“dd-MM-yyyy”转换为“yyyy-MM-dd”? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在sql中将dd-mm-yyyy转换为DD-MON-yyyy
是否有任何方法在使用 INTL 包时将这种日期格式转换为 DD-MM-YYYY [重复]
Hive cast string到目前为止dd-MM-yyyy