如何使用 StreamWriter 将 DateTimeOffset 写入文件
How to Write DateTimeOffset to file useing StreamWriter
我使用此函数写入我的 UWP 项目中的文件:
public static async Task WriteToFileAsync<T>(string fileName, T objectToWrite) where T : new()
{
StorageFolder storageFolder = ApplicationData.Current.LocalFolder
TextWriter writer = null;
try
{
StorageFile file = await storageFolder.CreateFileAsync(fileName + ".txt");
var serializer = new XmlSerializer(typeof(T));
var stream = await file.OpenStreamForWriteAsync();
writer = new StreamWriter(stream);
serializer.Serialize(writer, objectToWrite);
}
finally
{
if (writer != null)
writer.Close();
}
}
然而,这似乎没有将 DateTimeOffset
值写入文件。
我目前使用的解决方案是将其转换为字符串,但这似乎有点混乱。
有没有更优雅的方法来做到这一点?
最终,即使 DateTimeOffset 是一个结构,它在文件中更常见和有用的表达式是字符串。
您可以选择自己喜欢的格式。如果要干净,可以使用支持时间偏移的 ISO 8601 格式。
我使用此函数写入我的 UWP 项目中的文件:
public static async Task WriteToFileAsync<T>(string fileName, T objectToWrite) where T : new()
{
StorageFolder storageFolder = ApplicationData.Current.LocalFolder
TextWriter writer = null;
try
{
StorageFile file = await storageFolder.CreateFileAsync(fileName + ".txt");
var serializer = new XmlSerializer(typeof(T));
var stream = await file.OpenStreamForWriteAsync();
writer = new StreamWriter(stream);
serializer.Serialize(writer, objectToWrite);
}
finally
{
if (writer != null)
writer.Close();
}
}
然而,这似乎没有将 DateTimeOffset
值写入文件。
我目前使用的解决方案是将其转换为字符串,但这似乎有点混乱。
有没有更优雅的方法来做到这一点?
最终,即使 DateTimeOffset 是一个结构,它在文件中更常见和有用的表达式是字符串。 您可以选择自己喜欢的格式。如果要干净,可以使用支持时间偏移的 ISO 8601 格式。