diff --git a/src/core/config/OperationConfig.js b/src/core/config/OperationConfig.js
index 5fd5a9ee..346ca6a7 100755
--- a/src/core/config/OperationConfig.js
+++ b/src/core/config/OperationConfig.js
@@ -2261,6 +2261,20 @@ const OperationConfig = {
}
]
},
+ "From Windows Filetime To UNIX":{
+ description: "Converts a Windows Filetime timestamp to a datetime format",
+ run: DateTime.runFromFiletimeToUnix,
+ inputType: "string",
+ outputType: "string",
+ args: []
+ },
+ "To Windows Filetime From UNIX":{
+ description: "Parses a datetime string in UTC and returns the corresponding Windows Filetime timestamp",
+ run: DateTime.runToFiletimeFromUnix,
+ inputType: "string",
+ outputType: "string",
+ args: []
+ },
"Translate DateTime Format": {
description: "Parses a datetime string in one format and re-writes it in another.
Run with no input to see the relevant format string examples.",
run: DateTime.runTranslateFormat,
diff --git a/src/core/operations/DateTime.js b/src/core/operations/DateTime.js
index 523206b2..18fa3194 100755
--- a/src/core/operations/DateTime.js
+++ b/src/core/operations/DateTime.js
@@ -1,3 +1,5 @@
+import Decimal from 'decimal.js';
+
/**
* Date and time operations.
*
@@ -78,6 +80,41 @@ const DateTime = {
},
+ /**
+ * Converts a Windows FILETIME to Unix Epoch time.
+ *
+ * @param {string} input
+ * @param {Object[]} args (not used)
+ * @returns {string}
+ */
+ runFromFiletimeToUnix: function(input, args) {
+ input = new Decimal(input);
+ input = input.sub(116444736000000000).div(10000000);
+ if(input.gte(0) && input.lt(Math.pow(2,31))){
+ return input.toString();
+ } else {
+ throw "Date " + input + " is not a valid date";
+ }
+ },
+
+
+ /**
+ * Converts a Unix Epoch time to Windows FILETIME.
+ *
+ * @param {string} input
+ * @param {Object[]} args (not used)
+ * @returns {string}
+ */
+ runToFiletimeFromUnix: function(input, args) {
+ input = new Decimal(input);
+ if(input.gte(0) && input.lt(Math.pow(2,31))){
+ return input.mul(10000000).add(116444736000000000).toHex();
+ } else {
+ throw "Date " + input + " is not a valid date";
+ }
+ },
+
+
/**
* @constant
* @default