WP8 Toolkit DatePicker返回值格式

时间:2015-04-10 12:33:25

标签: c# windows-phone-8 datepicker wptoolkit

有没有办法可以将DatePicker的返回值更改为" yyyy-MM-dd"?我将值插入到SQLite数据库中,因此必须采用该格式才能对值执行datetime()语句。

 DateTime formatStartDate = DateTime.Parse(StartDate);
 StartDate= formatStartDate.ToString("yyyy-dd-MM");

 DateTime formatEndDate = DateTime.Parse(EndDate);
 EndDate = formatEndDate.ToString("yyyy-dd-MM");

这就是我一直在使用的东西,它在某种程度上起作用。当我把字符串作为" yyyy-MM-dd"它改变了所有并插入到数据库中作为" yyyy-dd-MM",所以我必须将字符串更改为" yyyy-dd-MM"解决这个问题,并在数据库中插入我想要的方式,因为" yyyy-MM-dd"格式(奇怪)。

我可以使用它,因为它做了我想要它做的事情,即使它没有意义,但是当我尝试验证StartDate和EndDate以便在#34; now"之前的日期。无法选择,它必须让所有人感到困惑,因为在我的代码中有很多不同的日期格式,并且它试图将上面的格式化日期与来自的默认日期值进行比较使用DatePicker。

我如何验证;

 if (DateTime.Parse(StartDate) < DateTime.Now)
    MessageBox.Show("Please select a start date that is today or in the future.");
 if (DateTime.Parse(EndDate) < DateTime.Now)
     MessageBox.Show("Please select an end date that is today or in the future.");

看起来像是一个简单的解决方案,但我无法在网上找到任何解决方法。我读过的大多数帖子或文章似乎只是处理前端格式。有什么方法可以将DatePicker返回的值更改为&#34; yyyy-MM-dd&#34;?

(StartDate和EndDate是绑定到DatePickers的字符串)

修改;

                <tk:DatePicker 
                    Grid.Row="1"
                    Grid.Column="0"
                    FontSize="20"
                    Value="{Binding StartDate, Mode=TwoWay}"
                    Background="LightGray" 
                    Foreground="#b71918"
                    BorderThickness="0"
                    Width="200"
                    HorizontalAlignment="Left"
                    VerticalAlignment="Top"/>

                <tk:DatePicker 
                    Grid.Row="1"
                    Grid.Column="1"
                    FontSize="20"
                    Value="{Binding EndDate, Mode=TwoWay}"                 
                    Background="LightGray" 
                    Foreground="#b71918"
                    BorderThickness="0"
                    Width="200"
                    HorizontalAlignment="Left"
                    VerticalAlignment="Top"/>

在我的保存按钮中(我希望格式为&#34; yyyy-MM-dd&#34;但它会更改为&#34; yyyy-dd-MM&#34;当它被插入时,所以我格式化为&#34; yyyy-dd-MM&#34;它插入&#34; yyyy-MM-dd&#34;,我实际想要它的方式);

                DateTime formatStartDate = DateTime.Parse(StartDate);
                string fsd = formatStartDate.ToString("yyyy-dd-MM");

                DateTime formatEndDate = DateTime.Parse(EndDate);
                string fed = formatEndDate.ToString("yyyy-dd-MM");

                // gets all confused cause of the above formatting
                if (DateTime.Parse(StartDate) < DateTime.Now)
                    MessageBox.Show("Please select a start date that is today or in the future.");

                if (DateTime.Parse(EndDate) < DateTime.Now)
                    MessageBox.Show("Please select an end date that is today or in the future.");

                var insertGoal = new GoalsTrackerModel
                {
                    GoalName = GoalName,
                    GoalDesc = GoalDesc,
                    StartDate = fsd,
                    EndDate = fed,
                    IsOpen = 1,
                    IsComplete = 0
                };
                _dbHelper.Insert<GoalsTrackerModel>(insertGoal);
                MessageBox.Show("New goal saved. Good luck!");

    public string StartDate
    {
        get { return _startDate; }
        set
        {
            if (_startDate != value)
                _startDate = value;

            OnPropertyChanged("StartDate");
        }
    }

    public string EndDate
    {
        get { return _endDate; }
        set
        {
            if (_endDate != value)
                _endDate = value;

            OnPropertyChanged("EndDate");
        }
    }

0 个答案:

没有答案