如何将文本框值转换为datetime

时间:2015-05-28 02:46:40

标签: c# parsing datetime datepicker

我正在使用日期选择器并在文本框中显示所选日期。格式显示为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或者转换它不起作用..它会给我一个字符串错误。

日期选择器的脚本

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

3 个答案:

答案 0 :(得分:0)

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

或确保为您的应用程序在全球范围内正确设置文化。

答案 1 :(得分:0)

您可以使用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

答案 2 :(得分:0)

您应该在控制台检查日期时间格式 - &gt;区域环境。 enter image description here