![](/img/trans.png)
[英]how to convert MM/dd/YYYY hh:mm:ss AM to YYYY-MM-dd datetime format by linq?
[英]How to output dates into CSV file in DD/MM/YYYY format instead of DD/MM/YYYY HH:MM:SS
非开发人员在这里尝试清除日期格式。 寻找对承包商创建的C#代码的检查。
这是新代码,用于将JSON对象转换为CSV格式。 承包商使用了Newtonsoft和Newtonsoft.Linq,还使用了CSVhelper函数。
string webData = System.Text.Encoding.UTF8.GetString(raw);
var records = JsonConvert.DeserializeObject<IList<JournalImport>>(webData, new Newtonsoft.Json.Converters.IsoDateTimeConverter { DateTimeFormat = "dd/MM/yyyy" });
using (var writer = new System.IO.StreamWriter(journalsCsvSFD.OpenFile()))
using (var csv = new CsvHelper.CsvWriter(writer))
我当前的CSV输出为“ 26/06/2019 12:18:56”。
预期结果为“ 26/06/2019”
让Excel在导入时正确格式化格式是很棘手的。 您可以告诉它做一件事,它将做完全不同的事情。 无论如何,突出显示整个时间列,右键单击->设置单元格格式。 在“数字”选项卡下,而不是转到“时间”类别,请尝试转到“自定义”类别,我认为您将能够找到自己想要的东西。
CsvHelper允许您创建自定义类型转换器。 因此,您可以为DateTime进行设置,并根据需要设置其格式。
void Main()
{
string webData = "[{\"date\":\"01/01/2018\",\"name\":\"toto\"}]";
var records = JsonConvert.DeserializeObject<IList<JournalImport>>(webData, new Newtonsoft.Json.Converters.IsoDateTimeConverter { DateTimeFormat = "dd/MM/yyyy" });
using (var writer = new System.IO.StreamWriter(File.Create(@"toto.csv")))
using (var csv = new CsvHelper.CsvWriter(writer))
{
csv.Configuration.TypeConverterCache.AddConverter<DateTime>(new DateTimeCOnverter());
csv.WriteRecords(records);
}
}
public class JournalImport
{
public DateTime Date { get; set; }
public string Name { get; set; }
}
public class DateTimeCOnverter : ITypeConverter
{
public object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData)
{
throw new NotImplementedException();
}
public string ConvertToString(object value, IWriterRow row, MemberMapData memberMapData)
{
if (value is DateTime date)
{
return date.ToString("dd/MM/yyyy");
}
return value?.ToString();
}
}
您可以添加格式选项。
using (var writer = new System.IO.StreamWriter(journalsCsvSFD.OpenFile()))
using (var csv = new CsvHelper.CsvWriter(writer))
{
csv.Configuration.TypeConverterOptionsCache.GetOptions<DateTime>().Formats = new[] { "dd/MM/yyyy" };
csv.WriteRecords(records);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.