在Mirth中,我收到一个需要转换为UTC的本地日期时间字符串(201801011000
)。我很快发现使用经典的js new Date()
效果并不好。
例如:
var d = new Date("2018-01-01 10:00");
logger.info(d.toString());
给了我一个Invalid Date
。
因此,经过进一步的搜索,我发现我可以这样做:
var d = DateUtil.getDate("yyyyMMddHHmm", "201801011000");
从这里开始我就被卡住了。我不知道如何将其转换为UTC。假设是本地服务器时区,现在就足够了,但是将来我还需要设置一个特定的非本地时区。
我试图获得可以用于Object.getOwnPropertyNames(d)
的方法,但这给了我一个完整的TypeError: Expected argument of type object, but instead had type object
我还尝试在java文档中查找DateUtil,并尝试了其中的一些方法,但都不起作用。
有人知道如何将日期字符串从本地时间转换为UTC吗?欢迎所有提示!
发布于 2018-07-17 20:45:47
好的,花了整整两天的时间,我终于找到了一个解决方案。最后,我不得不使用Java,但是因为我不能导入任何java依赖项,所以我不得不使用它们的直接类路径(例如:java.text.SimpleDateFormat
)。
最后,这是对我有效的方法:
var datestr = "201207011000".slice(0, 12); // This is just a datetime string to test with
var formatter_hl7 = new java.text.SimpleDateFormat("yyyyMMddHHmm");
formatter_hl7.setTimeZone(java.util.TimeZone.getTimeZone("CET"));
var formatter_utc = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm");
formatter_utc.setTimeZone(java.util.TimeZone.getTimeZone("UTC"));
var date_in_utc = formatter_utc.format(formatter_hl7.parse(date_str));
无论如何,我祝大家有一个美好的一天!
发布于 2018-07-19 20:52:45
在我项目中,有将datestring
本地时间转换为UTC的函数,
function getDateInUTC(dateString) {
return new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm").setTimeZone(java.util.TimeZone.getTimeZone("UTC")).format(new java.text.SimpleDateFormat("yyyyMMddHHmm").setTimeZone(java.util.TimeZone.getTimeZone("CET")).parse(dateString));
}
享受:)
发布于 2018-07-11 08:51:06
给这个喊一声
var d = DateUtil.getDate("yyyyMMddHHmm", "201801011000");
var utcD = new Date(d).toISOString();
编辑:.toISOString() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString上的信息
https://stackoverflow.com/questions/50821378
复制相似问题