Unity 基础 之 把时间日期的字符串再次转为格式化指定时间日期格式(Format:yyyy-MM-ddTHH:mm:ss.SSSZ)
目录
Unity 基础 之 把时间日期的字符串再次转为格式化指定时间日期格式(Format:yyyy-MM-ddTHH:mm:ss.SSSZ)
附录:时间格式简单说明 yyyy-MM-dd‘T‘HH:mm:ss.SSSZ
一、简单介绍
Unity中的一些知识点整理。
本节简单介绍在Unity开发中的,可能获取json 获取到时间日期字符串,不符合使用,需要重新格式化转为指定的日期时间,这里使用System.DateTime.Parse 进行解析成时间 DateTime,再格式化转为目标格式,如果你有新的方式也可以留言,多谢。
二、实现原理
1、System.DateTime.Parse 进行解析成时间 DateTime
2、在通过 dateTime.ToString(newDataTimeFormat) 格式化成新的格式
三、注意事项
1、注意你的时间字符串时区
四、效果预览
五、实现步骤
1、打开 Unity,新建工程
2、编写脚本,把时间日期字符串,再次转为指定格式化时间
3、把脚本,挂在到场景中
4、运行场景,效果如下
六、关键代码
using UnityEngine;
namespace XAN.TestSpace {
public class Test : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Debug.Log("Now :" +System.DateTime.Now.ToString("yyyy年MM月dd日 HH:mm"));
TestTimeStringToFromat();
}
void TestTimeStringToFromat() {
Debug.Log("old: 2018-12-16 ");
Debug.Log(TimeStringToFromat("2018-12-16", "yyyy年MM月dd日"));
Debug.Log("old: 2021-09-14T12:05:07.092Z ");
Debug.Log(TimeStringToFromat("2021-09-14T12:05:07.092Z", "yyyy年MM月dd日 HH:mm"));
Debug.Log("old: 2021-09-14 12:05:07.092 ");
Debug.Log(TimeStringToFromat("2021-09-14 12:05:07.092", "yyyy年MM月dd日 hh:mm"));
}
string TimeStringToFromat(string dateTimeString, string newDataTimeFormat) {
System.DateTime dateTime = System.DateTime.Parse(dateTimeString);
return dateTime.ToString(newDataTimeFormat);
}
}
}
附录:时间格式简单说明 yyyy-MM-dd‘T‘HH:mm:ss.SSSZ
yyyy-MM-dd'T'HH:mm:ss.SSSZ 时间格式
下面来着重认识一下:
Date Time String Format
ECMAScript defines a string interchange format for date-times based upon a simplification of the ISO 8601 Extended Format. The format is as follows: YYYY-MM-DDTHH:mm:ss.sssZ
Where the fields are as follows:
上面这个时间格式就是带T和Z这种是ISODATE .
Z是表示0时区:
对我们国家来说, 采用北京时间, 处于东八区.UTC+8 , 所以,
带Z的时间格式, 转换成北京时间需要加上 8 个小时.
例如:
Updated Date:2017-10-20T02:59:25Z 转换成北京时间: UTC+8 就是 2017-10-20 10:59:25
Creation Date:2015-08-03T07:21:33Z 转换成北京时间: UTC+8 就是 2015-08-03 15:21:33
参考网址: http://www.ecma-international.org/ecma-262/6.0/#sec-date-time-string-format