簡體   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