简体   繁体   English

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

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

My script from txtdate;我的 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>

I try to use format in my date time我尝试在我的日期时间使用格式

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

I get an error:我收到一个错误:

String was not recognized as a valid DateTime字符串未被识别为有效的日期时间

But this format works:但这种格式有效:

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

How can I use format "yyyy-MM-dd" ?如何使用格式“yyyy-MM-dd”?

In your JS it looks like you expecting string that contains date in this format format: "yyyy/MM/dd So both of your parsing should be invalid.在您的 JS 中,您似乎期望包含此格式format: "yyyy/MM/dd日期的字符串format: "yyyy/MM/dd所以您的两个解析都应该是无效的。

So how this DateTime.ParseExact works:那么这个DateTime.ParseExact是如何工作的:

You have input string that can be formatted in different ways.您有可以以不同方式格式化的输入字符串。

DateTime.ParseExact is defined: DateTime.ParseExact定义为:

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

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

  • So what it means is that s is input date string that you want to parse.所以这意味着s是您要解析的输入日期字符串。
  • String format tells the method what format is your input string.字符串格式告诉方法你的输入字符串的格式是什么。
  • And provider is an object that supplies culture-specific format information about s. provider是一个对象,它提供有关 s 的特定于文化的格式信息。

So example:所以例子:

var dateString = "11/04/2021";

If you do:如果你这样做:

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

Your date will be 11th April 2021您的date将是11th April 2021

But if you do:但如果你这样做:

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

Your date will be 4th November 2021您的date将是4th November 2021

Addition:添加:

If you try this:如果你试试这个:

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

You will be thrown System.FormatException: "String was not recognized as a valid DateTime."您将被抛出System.FormatException: "String was not recognized as a valid DateTime." simply because string is "11/04/2021" and you telling your parser to expect "MM-dd-yyyy" Hope its clearer now.仅仅因为字符串是“11/04/2021” ,你告诉你的解析器期待“MM-dd-yyyy”希望现在更清楚。

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

相关问题 字符串未被识别为有效的日期时间“格式 dd/MM/yyyy” - String was not recognized as a valid DateTime " format dd/MM/yyyy" 将DateTime转换为字符串格式yyyy-MM-dd时出错 - Error converting DateTime to string format yyyy-MM-dd 将日期时间格式更改为“yyyy-mm-dd” - Change DateTime Format as "yyyy-mm-dd" Linq 2 Sql DateTime 格式到字符串 yyyy-MM-dd - Linq 2 Sql DateTime format to string yyyy-MM-dd 解析dd / MM / yyyy格式时,发生DateTime解析错误。 字符串未被识别为有效的日期时间 - DateTime parsing error while parsing dd/MM/yyyy format. String was not recognized as valid datetime 如何通过linq将MM / dd / YYYY hh:mm:ss AM转换为YYYY-MM-dd datetime格式? - how to convert MM/dd/YYYY hh:mm:ss AM to YYYY-MM-dd datetime format by linq? 如何格式化日期时间? 输入“yyyy-MM-dd” - How to format Datetime? type to “yyyy-MM-dd” 对于字符串格式dd / MM / yyyyTHH:mm,“字符串未被识别为有效的DateTime” - “String was not recognized as a valid DateTime” for string format dd/MM/yyyyTHH:mm 无法将DateTime格式从MM / dd / yyyy转换为yyyy-MM-dd - Can't convert DateTime format from MM/dd/yyyy to yyyy-MM-dd 使用以下格式转换datetime字符串:(yyyy-MM-dd&#39;T&#39;hh:mm:ss-zzz) - Convert datetime string with this format: (yyyy-MM-dd'T'hh:mm:ss-zzz)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM