繁体   English   中英

“字符串未被识别为有效的日期时间。” 格式“yyyy-MM-dd”我如何使用这种格式

[英]"String was not recognized as a valid DateTime." format "yyyy-MM-dd" how i can use this format

我的 txtdate 脚本;

<asp:TextBox ID="txtDate1" AutoComplete="off"  runat="server" ></asp:TextBox>

<script type="text/javascript">
$(function () {
    $('[id*=txtDate]').datepicker({
        changeMonth: true,
        changeYear: true,
        format: "yyyy/MM/dd",
        language: "tr"
    });
});
</script>

我尝试在我的日期时间使用格式

DateTime x = DateTime.ParseExact(txtDate1.Text, "yyyy-MM-dd", new CultureInfo("en-US")).AddDays(7);

我收到一个错误:

字符串未被识别为有效的日期时间

但这种格式有效:

DateTime x = DateTime.ParseExact(txtDate1.Text, "dd/MM/yyyy", new CultureInfo("en-US")).AddDays(7);

如何使用格式“yyyy-MM-dd”?

在您的 JS 中,您似乎期望包含此格式format: "yyyy/MM/dd日期的字符串format: "yyyy/MM/dd所以您的两个解析都应该是无效的。

那么这个DateTime.ParseExact是如何工作的:

您有可以以不同方式格式化的输入字符串。

DateTime.ParseExact定义为:

public static DateTime ParseExact (string s, string format, IFormatProvider? provider);

文档: https : //docs.microsoft.com/en-us/dotnet/api/system.datetime.parseexact? view = net- 5.0

  • 所以这意味着s是您要解析的输入日期字符串。
  • 字符串格式告诉方法你的输入字符串的格式是什么。
  • provider是一个对象,它提供有关 s 的特定于文化的格式信息。

所以例子:

var dateString = "11/04/2021";

如果你这样做:

 var date = DateTime.ParseExact(dateString, "dd/MM/yyyy", new CultureInfo("en-US"));

您的date将是11th April 2021

但如果你这样做:

var date = DateTime.ParseExact(dateString, "MM/dd/yyyy", new CultureInfo("en-US"));

您的date将是4th November 2021

添加:

如果你试试这个:

var date = DateTime.ParseExact(dateString, "MM-dd-yyyy", new CultureInfo("en-US"));

您将被抛出System.FormatException: "String was not recognized as a valid DateTime." 仅仅因为字符串是“11/04/2021” ,你告诉你的解析器期待“MM-dd-yyyy”希望现在更清楚。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM