如何将文本框值转换为日期时间

how to convert textbox value to datetime

我正在使用日期选择器并在文本框中显示所选择的日期。格式显示为 14-05-2015 10:42

我正在尝试将此值传递给如下方法。

public String GetTimestamp(DateTime value)
        {
            return value.ToString("yyyy-MM-dd HH:mm:ss");
           //return value.ToString("yyyyMMddHHmmss");

        }

我声明值字符串 taskDate = txtDate.Text 如何将其转换为 DATETIME 格式并传递给此方法?

我尝试了几种方法,如 parseexact 或 convert,但它不起作用。它会给我一个字符串错误。

日期选择器脚本

<script type="text/javascript">
        $(document).ready(function () {
            $("#<%=txtDate.ClientID %>").dynDateTime({
                showsTime: true,
                ifFormat: "%Y-%m-%d %H:%M:%S",
                daFormat: "%l;%M %p, %e %m, %Y",
                align: "BR",
                electric: false,
                singleClick: false,
                displayArea: ".siblings('.dtcDisplayArea')",
                button: ".next()"
            });
        });
</script>

使用 DateTime.TryParse 和适合您的日期选择器字符串格式的区域性。

类似于:

String timeStamp = null;
DateTime dateValue;
if (DateTime.TryParse(taskDate, CultureInfo.CreateSpecificCulture("fr-FR"), DateTimeStyles.None, out dateValue))
{
    timeStamp = GetTimestamp(dateValue);
}

...

示例:https://dotnetfiddle.net/C44uNo

或者确保在全球范围内为您的应用程序适当地设置了区域性。

您可以使用TryParseExact

 var dt = DateTime.Now;
 var enUS = new CultureInfo("en-US");
 if(DateTime.TryParseExact(taskDate, "yyyy-MM-dd HH:mm:ss", enUS, DateTimeStyles.None, out dt))
 {

 }

或者

 if(DateTime.TryParseExact(taskDate, "yyyy-MM-dd HH:mm:ss", null, DateTimeStyles.None, out dt))
 {

 }

正在更新

测试:https://dotnetfiddle.net/D0UdiV

您应该在控制面板 -> 区域设置中检查您的日期时间格式。