簡體   English   中英

將字符串值解析為日期時間值

[英]Parse string value to datetime value

我需要將字符串值解析為日期時間值,我的日期格式如下:

DD.MM.YYYY

我想以這種格式解析值:

YYYY-MM-DD

我試圖這樣做:

DateTime.ParseExact(date_req, "yyyy-MM-dd", CultureInfo.InvariantCulture); 

但是我有一個錯誤:字符串未被識別為有效的DateTime。

有沒有辦法做到這一點?

如果您有格式為DD.MM.YYYY的字符串,為什么要將YYYY-MM-DD傳遞給ParseExact函數?

嘗試這樣:

string dateStr = "12.06.2012";
DateTime date = DateTime.ParseExact(dateStr, "dd.MM.yyyy", CultureInfo.InvariantCulture);

然后,當您想將此DateTime實例輸出到某處時,可以使用YYYY-MM-DD格式,如下所示:

string result = date.ToString("yyyy-MM-dd");

解析日期時,您需要指定要閱讀的格式,而不是以后要輸出的格式。

因此,請使用dd.MM.yyyy作為ParseExact參數。

檢查DateTime.ParseExact方法(字符串,字符串,IFormatProvider)將日期和時間的指定字符串表示形式轉換為其等效的DateTime。 字符串表示形式的格式必須與指定的格式完全匹配,否則將引發異常。

您必須將格式字符串指定為DD.MM.YYYY而不是"yyyy-MM-dd"

嘗試這個:

DateTime dateValue = DateTime.ParseExact(date_req, "DD.MM.YYYY", CultureInfo.InvariantCulture );

// use this when you need to show that formatted date value
string formattedDate = dateValue.ToString("yyyy-MM-dd");

更好的方法是使用DateTime.TryParseExact方法 ,如果您希望將其用作日期而不是字符串,請修改您的區域性信息和日期分隔符。

CultureInfo enUS = new CultureInfo("en-US"); 
string dateString;
DateTime dateValue;
dateString = "05.01.2009"; 
if (DateTime.TryParseExact(dateString, "DD.MM.YYYY", enUS, 
                        DateTimeStyles.None, out dateValue))
   Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                     dateValue.Kind);
else
   Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

我認為您想要做的是解析dd.MM.yyyy ,然后將其顯示為yyyy-MM-dd

您首先必須將string解析為DateTime

DateTime date = DateTime.ParseExact(date_req, "yyyy-MM-dd", CultureInfo.InvariantCulture); 

現在, date是計算機實際理解的日期的表示形式(之前只是一個字符串)。 現在,您可以隨時顯示該對象:

string yyyyMMdd = date.ToString("yyyy-MM-dd");
string arabic = date.ToString("yyyy-MM-dd", new CultureInfo("ar"));
// and so on

不要忘記,當將日期從字符串轉換為DateTime並返回時,文化和時區值得牢記。

首先以現有格式解析它,然后轉換為所需的字符串格式。

var date = DateTime.ParseExact(date_req, "dd.MM.yyyy", CultureInfo.InvariantCulture); 
var str = date.ToString("yyyy-MM-dd");

您可以先將其轉換為字符數組。 那么您可以將年/月/年分別解析為整數。 您知道數字的索引,因此這很容易。 之后,您可以按照自己喜歡的方式連接每個元素。

錯誤。 您有蛋糕,想吃木樁。 為了使您的胃相信蛋糕是樁,您必須將蛋糕轉換成樁。 無法做到這一點。 解析是要接受一個值,然后使用模式(或多個)將其轉換為其他值,而不進行轉換。 因此,您想要的可能是正確的,但您提出的要求是錯誤的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM