如何将String
转换为01 Juni 2015
,例如DateTime
?
我试试,但显示错误信息(如下所示):
代码:
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
答案 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)
您应该使用四个M
(MMMM
)而不是三个M
(MMM
),因为您的月份为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