如何在c#中将字符串转换为特定格式的日期时间,并将其分配给date属性

本文关键字:时间 日期 date 分配 属性 定格 字符串 转换 格式 | 更新日期: 2023-09-27 18:12:02

我正在使用。tostring()将"dd/MM/yyyy"格式转换为"yyyy-MM-dd",但如何在日期属性中分配此字符串结果,因为我使用QBO API,我需要仅在"yyyy-MM-dd"中传递交易日期变量,因为它不会接受字符串变量。如果我将字符串结果转换为datetime,那么结果将再次在"dd/MM/yyyy"中更改。

如何实现我的系统datetime时间格式为English UK

如何在c#中将字符串转换为特定格式的日期时间,并将其分配给date属性

你可以这样做:

String initial = "12/06/2014" ; 
String newFormat = DateTime.ParseExact(initial, "dd/MM/YYYY").ToString("yyyy-MM-dd"); 
// newFormat contains now 2014-06-12 

EDIT:

ToString()可以改变格式,但它是字符串格式。我该怎么做?将.Tostring()结果"yyyy-MM-dd"分配给date属性接受"yyyy-MM-dd"格式的日期时间变量。如果我分配.Tostring()会产生日期变量,它将再次发生变化"dd/MM/yyyy"格式的

如果你想把newFormat赋值给DateTime,你必须解析它。

DateTime date = DateTime.ParseExact(newFormat , "yyyy-MM-dd");

您可以尝试先解析字符串:

DateTime dt = DateTime.ParseExact(input, "dd/MM/yyyy", CultureInfo.InvariantCulture);

其中input是包含日期的字符串,12/06/2014

然后你可以得到你想要的字符串,如下所示:

string output = dt.ToString("yyyy-MM-dd");
DateTime newDt = DateTime.ParseExact(input, "yyyy-MM-dd", CultureInfo.InvariantCulture);

关于DateTime.ParseExact的更多信息请查看此处

首先从字符串

创建一个DateTime对象
DateTime dt = DateTime.ParseExact("12/06/2014", "dd/MM/yyyy", CultureInfo.InvariantCulture);

然后从这个对象你可以实现任何你想要的,像这样

dt.ToString("MM/dd/yyyy");

MyDateTimePicker.SelectedDate = dt;

EDIT:根据您的要求执行

MyDateTimePicker.SelectedDate = dt.ToString("yyyy-MM-dd");

默认情况下,您的DateTime值将始终作为系统本地返回。您需要在DateTime对象上使用.ToString(string format)

http://msdn.microsoft.com/en-us/library/8kb3ddd4%28v=vs.110%29.aspx

上面的链接应该给你所有你需要的关于格式的信息。

我建议保持日期格式,无论你的pc(地区)有它,只有当你在屏幕上"显示"它时才操纵它。

你可以在显示的时候格式化它,像这样:

.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture)