示例#1
0
            internal static long Parse(String src, String fmt)
            {
                Context ctx = tls;

                if (null == ctx)
                {
                    ctx = tls = new Context();
                }

                Debug.Assert(fmt != null);
                ParsedValue value = new ParsedValue();

                value.ResetDt();
                int end = Parse(src, ref value,
                                fmt == ctx.LastDtFmtStr
                                                ? ctx.LastDtTemplate
                                                : ctx.DateTimeParser.GetTemplate(fmt, ctx.DtTemplateCache));

                return(value.GetDt());
            }
示例#2
0
            internal static long Parse(String src, String fmt)
            {
                Context ctx = tls;

                if (null == ctx)
                {
                    ctx = tls = new Context();
                }

                Debug.Assert(fmt != null);
                ParsedValue value = new ParsedValue();

                value.ResetTs();                 // TODO: Remove
                int end = Parse(src, ref value,
                                fmt == ctx.LastTsFmtStr
                                                ? ctx.LastTsTemplate
                                                : ctx.TimeSpanParser.GetTemplate(fmt, ctx.TsTemplateCache));

                return(value.GetTs());
            }
示例#3
0
 public override int Parse(String from, int ofs, ref ParsedValue dst)
 {
     return(Read.Component(from, ofs, length, ref dst, scale));
 }
示例#4
0
 protected static int Parse(String from, ref ParsedValue value, Template t)
 {
     return(t.Parse(from, 0, ref value));
 }
示例#5
0
 public override int Parse(String from, int ofs, ref ParsedValue dst)
 {
     dst.day = Read.DecimalFixed(from, ofs, ofs + 2);
     return(ofs + 2);
 }
示例#6
0
 public override int Parse(String from, int ofs, ref ParsedValue dst)
 {
     // TODO: Range check
     return(Read.Component(from, ofs, 2, ref dst, Convert.NanosInSecond));
 }
示例#7
0
 public override int Parse(String from, int ofs, ref ParsedValue dst)
 {
     // TODO: Rangecheck for length > 5
     return(Read.Component(from, ofs, length, ref dst, Convert.NanosInDay));
 }
示例#8
0
 public override int Parse(String from, int ofs, ref ParsedValue dst)
 {
     dst.x += Convert.NanosInDay * Read.DecimalFixed(from, ofs, ofs + 2);
     return(ofs + 2);
 }
示例#9
0
 public override int Parse(String from, int ofs, ref ParsedValue dst)
 {
     return(Read.Sign(from, ofs, ref dst));
 }
示例#10
0
 public override int Parse(String from, int ofs, ref ParsedValue dst)
 {
     throw new InvalidOperationException(str);
 }
示例#11
0
 public abstract int Parse(String from, int ofs, ref ParsedValue dst);