前言:
獲取當前日期,直接 用DateTime.Now 就可以得到,但當天的星期數,獲取的卻是 英文輸出(數字),而你想要的到當天爲星期幾,則另外需要作判斷。
腳本如下:
// 根據當前系統時間判定:
string weekstr = DateTime.Now.DayOfWeek.ToString();
switch (weekstr)
{
case "Monday": weekstr = "星期一"; break;
case "Tuesday": weekstr = "星期二"; break;
case "Wednesday": weekstr = "星期三"; break;
case "Thursday": weekstr = "星期四"; break;
case "Friday": weekstr = "星期五"; break;
case "Saturday": weekstr = "星期六"; break;
case "Sunday": weekstr = "星期日"; break;
}
簡寫爲:
string weekstr = DateTime.Now.DayOfWeek.ToString(“d”);
(注: C#的腳本枚舉是 0~6, 0表示星期天,後面以此類推)
如果是從服務器上獲取時間字符串,則另需要轉換爲日期類型輸出
string time = System.DateTime.Now.ToString("yyyyMMddHHmmss");
// 把字符串類型日期轉換爲日期類型
System.DateTime t = System.DateTime.ParseExact(time, "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture);
如果從服務器上獲取的是時間戳:
string tt = "xxx"; // 從服務器獲取的時間戳
System.DateTime times = StampToDataTime(tt);
int currentDay = int.Parse(times.DayOfWeek.ToString("d") );
Debug.Log("\n === change time:" + times + ",week:" + times.DayOfWeek.ToString("d"));
/// 時間戳轉時間格式
/// <param name="timeStamp">時間戳</param> --- 以服務器時間戳的精確爲準
public DateTime StampToDataTime(string timeStamp){
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970,1,1));
// --- 以服務器時間戳的精確爲準,添加0,默認7個0 (毫秒級,則添加4個0)
long mTime = long.Parse(timeStamp + "0000000");
TimeSpan toNow = new TimeSpan(mTime );
Debug.Log("\n===== toNow Time: " + toNow + ", current: " + startTime.Add(toNow));
return startTime.Add(toNow);
}
備註:
// 以特定格式 顯示 當前時間
Debug.Log("\n=== currently time: " + System.DateTime.Now.ToString("yyyyMMddHHmmss"));
// 當前的星期數
Debug.Log("\n=== currently time: " + System.DateTime.Now.DayOfWeek.ToString("d")); // 星期小寫 (0~6)
參考資料:http://www.cnblogs.com/junjie94wan/archive/2012/12/10/2811134.html