1

在 Form1 中,我有:

satelliteMapToRead = File.ReadAllText(localFilename + "satelliteMap.txt");

然后在构造函数中:

ExtractImages.ExtractDateTime("image2.ashx?region=eu&time=", "&ir=true", satelliteMapToRead);

然后在 ExtractImages 类中我有:

public static void ExtractDateTime(string firstTag, string lastTag, string f)
{
    int index = 0;
    int t = f.IndexOf(firstTag, index);
    int g = f.IndexOf(lastTag, index);
    string a = f.Substring(t, g - t);
}

这是文本文件中的字符串示例:

image2.ashx?region=eu&time=201309202145&ir=true

从这个字符串中,我希望变量 g 仅包含:201309202145 然后将变量 a 转换为日期时间:日期 2013 09 20 - 时间 21 45

我现在在变量 a 中得到的是:

image2.ashx?region=eu&time=201309202215

这不是我需要的。

4

4 回答 4

2

您没有考虑 的长度firstTag

int t = f.IndexOf(firstTag, index) + firstTag.Length;
于 2013-09-20T22:30:32.667 回答
0

Since you're already doing it this way, juts use indexOf("time=") again to get 201309202215. Then the date/time is given by

DateTime.ParseExact(str, "yyyyMMddhhmmss", CultureInfo.InvariantCulture);
于 2013-09-20T22:28:56.573 回答
0

将此行切换为:

int t = f.IndexOf(firstTag, index) + firstTag.Length;

IndexOf返回字符串第一个字符的位置。所以在你的例子中,t实际上是零。这就是为什么a其中还有第一个标签。

于 2013-09-20T22:30:02.310 回答
0

没有错误处理(缺少参数或无效格式):

string url = "image2.ashx?region=eu&time=201309202145&ir=true";
var queryString = System.Web.HttpUtility.ParseQueryString(url);
DateTime dt = DateTime.ParseExact(queryString["time"], "yyyyMMddHHmm", CultureInfo.InvariantCulture);
于 2013-09-20T22:34:43.440 回答