有什么方法可以将 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 以便无法选择“现在”之前的日期时,它一定会感到困惑,因为我的代码中有很多不同的日期格式,它试图将上面的格式化日期与 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 返回的值更改为“yyyy-MM-dd”?
(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"/>
在我的保存按钮中(我希望格式为“yyyy-MM-dd”,但插入时它会更改为“yyyy-dd-MM”,所以我格式化为“yyyy-dd-MM”并插入为“yyyy- MM-dd”,我真正想要的方式);
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");
}
}