Creates a human-readable string that represents a given timestamp in a (ISO 8601) format that can be converted back to the correct value across time zones.
using System;
using System.Diagnostics;
using System.Globalization;
using System.Text;
namespace Utils
{
public static class DateTimeUtil
{
/// <summary>
/// Creates a human-readable string that represents a given
/// timestamp in a format that can be converted back to the
/// correct value across time zones.
/// The serialized timestamp can be converted back into a
/// <see cref="DateTime"/> instance through the
/// <see cref="ReadDateTime"/> method.
/// </summary>
/// <param name="value">Timestamp to be serialized.</param>
/// <returns>String representation of the timestamp.</returns>
public static string SerializeDateTime(DateTime value)
{
return value.ToString("o", CultureInfo.InvariantCulture);
}
/// <summary>
/// Parses a serialized timestamp that was created through the <see cref="SerializeDateTime"/> method.
/// </summary>
/// <param name="value">A string that represents a given time.</param>
/// <returns>A corresponding timestamp.</returns>
/// <remarks>This method works with local, UTC and unspecified timestamps.</remarks>
public static DateTime ReadDateTime(string value)
{
return DateTime.Parse(value, CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind);
}
}
}