将字符串转换为DateTime(d MM yyyy)

时间:2016-05-18 03:33:19

标签: c# string datetime uwp

如何将String转换为01 Juni 2015,例如DateTime

我试试,但显示错误信息(如下所示):

enter image description here

代码:

string urlPath = "website";
var values = new List<KeyValuePair<string, string>>
{


};
var response = await client.PostAsync(new Uri(urlPath), new Windows.Web.Http.HttpFormUrlEncodedContent(values));
response.EnsureSuccessStatusCode();

if (!response.IsSuccessStatusCode)
{
    RequestException();
}

string jsonText = await response.Content.ReadAsStringAsync();
JsonObject jsonObject = JsonObject.Parse(jsonText);
JsonArray jsonData1 = jsonObject["data"].GetArray();

foreach (JsonValue groupValue in jsonData1)
{
    JsonObject groupObject = groupValue.GetObject();

    string tanggal = groupObject["tgl"].GetString();
    BukuAudio file = new BukuAudio();
    string[] formats = { "d MMM yyyy" };
    var dateTime = DateTime.ParseExact(tanggal.Text, formats, new CultureInfo("id-ID"), DateTimeStyles.None);
    file.Tanggal = n;
    datasource.Add(file);

}

注意:

日期与JSON

绑定

3 个答案:

答案 0 :(得分:1)

应为MMMM(不是MMM),使用"d MMMM yyyy"作为格式。

MMM:用于显示DateTime中所代表的月份的三个字母形式(如“Jan”)。

MMMM:用于显示正确大写的完整月份字符串。一个例子是“一月

因此您可以将代码修改为

string[] formats = { "d MMMM yyyy" };
var dateTime = DateTime.ParseExact(tanggal.Text, formats, new CultureInfo("id-ID"), DateTimeStyles.None);

答案 1 :(得分:1)

您指定的格式为d MMM yyyy,而您尝试解析的日期为01 Juni 2015。这些不匹配,因此转换失败。

要使其有效,请将格式更改为dd MMMM yyyy

MSDN具有DateTime格式字符串列表:https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx

答案 2 :(得分:1)

您应该使用四个MMMMM)而不是三个MMMM),因为您的月份为Juni而不是Jun

string[] formats = { "d MMMM yyyy" };
var dateTime = DateTime.ParseExact(tanggal.Text, formats, new CultureInfo("id-ID"), DateTimeStyles.None);

单{或} d是可以的,因为您的格式为01 Juni ...,但如果您的格式为1 Juni ...,那么您应该使用单d