in csharp/EPAM.Deltix.HdTime/Formatter.cs [818:848]
public static Boolean TryParse(String source, IFormatProvider formatProvider, out HdDateTime hdDateTime)
{
if (String.IsNullOrEmpty(source))
{
throw new ArgumentNullException("source", "source is null.");
}
Byte preciseTimeSource;
Int32 preciseTimeCount, preciseTimePosition;
// find and replace preciseTime source
Boolean isPreciseTimeFormat = Formatter.FindAndReplacePreciseTimeSource(source, out preciseTimeSource, out preciseTimeCount, out preciseTimePosition);
// parse time
DateTime dateTime;
Boolean isSuccessfullyParsed = false;
try
{
isSuccessfullyParsed = DateTime.TryParse(source, formatProvider, DateTimeStyles.None, out dateTime);
hdDateTime = new HdDateTime(dateTime, preciseTimeSource);
return isSuccessfullyParsed;
}
finally
{
// rollback replacement
if (isPreciseTimeFormat)
Formatter.RollbackPreciseTimeSourceReplacement(source, preciseTimePosition, preciseTimeCount, preciseTimeSource);
}
}