Repository URL to install this package:
Version:
1.3.1 ▾
|
using System;
using UnityEngine;
namespace Fluctio.FluctioSim.Utils.SerializableClasses
{
[Serializable]
public class SerializableDateTime : ISerializationCallbackReceiver, IFormattable
{
#region Info and constructor
[SerializeField] private long binary;
public DateTime DateTime { get; private set; }
public SerializableDateTime(DateTime dateTime)
{
DateTime = dateTime;
binary = DateTime.ToBinary();
}
#endregion
#region Cast operators
public static implicit operator DateTime(SerializableDateTime serializableDateTime)
{
return serializableDateTime.DateTime;
}
public static implicit operator SerializableDateTime(DateTime dateTime)
{
return new SerializableDateTime(dateTime);
}
#endregion
#region Serialization
public void OnBeforeSerialize()
{
binary = DateTime.ToBinary();
}
public void OnAfterDeserialize()
{
DateTime = DateTime.FromBinary(binary);
}
#endregion
#region ToString
// ReSharper disable once SpecifyACultureInStringConversionExplicitly
public override string ToString() => DateTime.ToString();
public string ToString(string format, IFormatProvider formatProvider)
{
return DateTime.ToString(format, formatProvider);
}
#endregion
}
}