如何在 Unity 中使用 StreamWriter 和 DateTime(我使用的是 c#)获取时间保存到文件?

How do I get the time to save to a file using StreamWriter and DateTime in Unity (I'm using c#)?

我试过添加时间,但它似乎没有自动更新。我能够在某种程度上获得正确的日期,但它不会自动更改。这是我使用的代码:

public int year; 
public int day;
public int hour;
public int minute;
public int seconds;
DateTime dt;

void Start(){
    dt = new DateTime (year, month, day, hour, minute, seconds);
}

StreamWriter swriter = new StreamWriter (@"Assets\Time_Stamp.txt");
try(){
    swriter.WritLine(dt.Date.ToString());
    swriter.Close();
}
catch(Exception ex){
    ex = new Exception("An error has occurred!!");
}

如何解决这个问题,使其更自动并更接近当地时间?

DateTime.Date 属性 只会 return DateTime 的日期部分,所以你总是会从 dt 得到 00:00:00

// dt.Date.ToString()
dt.ToString()

您还需要使用未初始化的 int (0) 以外的参数构造您的 DateTime。如果您需要当前时间,请考虑使用:

dt = DateTime.Now;

DateTime 创建后不会自动更新。 DateTime.Now static 属性,returns 当前时间和日期,就是您要查找的内容。所以,基本上,您不需要所有 year, month, 等变量。 DateTime 还包含一些转换为字符串的不同方法,您可能想尝试一下。

swriter.WriteLine(DateTime.Now.ToString());
// writes 2015-06-30 23:54:53, but it might look different for you, because it depends on regional settings
swriter.WriteLine(DateTime.Now.ToLongTimeString());
// 23:54:53
swriter.WriteLine(DateTime.Now.ToLongDateString());
// 30 czerwca 2015 - again dependent on your regional settings
swriter.WriteLine(DateTime.Now.ToShortTimeString());
// 23:54
swriter.WriteLine(DateTime.Now.ToShortDateString());
// 2015-06-30