Skip to content

Commit

Permalink
Allow hex and decimal format for Windows Filetime format as those are…
Browse files Browse the repository at this point in the history
… the formats they are typically represented in
  • Loading branch information
bwhitn committed Jul 3, 2017
1 parent 213ec02 commit ad25daf
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 2 deletions.
10 changes: 10 additions & 0 deletions src/core/config/OperationConfig.js
Original file line number Diff line number Diff line change
Expand Up @@ -2271,6 +2271,11 @@ const OperationConfig = {
name: "Output units",
type: "option",
value: DateTime.UNITS
},
{
name: "Input Format",
type: "option",
value: DateTime.FILETIME_FORMATS
}
]
},
Expand All @@ -2284,6 +2289,11 @@ const OperationConfig = {
name: "Input units",
type: "option",
value: DateTime.UNITS
},
{
name: "Output Format",
type: "option",
value: DateTime.FILETIME_FORMATS
}
]
},
Expand Down
23 changes: 21 additions & 2 deletions src/core/operations/DateTime.js
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,13 @@ const DateTime = {
*/
runFromFiletimeToUnix: function(input, args) {
let units = args[0];
input = new BigInteger(input).subtract(new BigInteger("116444736000000000"));
let format = args[1];
if (format === "Hex") {
input = new BigInteger(input, 16);
} else {
input = new BigInteger(input);
}
input = input.subtract(new BigInteger("116444736000000000"));
if (units === "Seconds (s)"){
input = input.divide(new BigInteger("10000000"));
} else if (units === "Milliseconds (ms)") {
Expand All @@ -116,6 +122,7 @@ const DateTime = {
*/
runToFiletimeFromUnix: function(input, args) {
let units = args[0];
let format = args[1];
input = new BigInteger(input);
if (units === "Seconds (s)"){
input = input.multiply(new BigInteger("10000000"));
Expand All @@ -128,10 +135,22 @@ const DateTime = {
} else {
throw "Unrecognised unit";
}
return input.add(new BigInteger("116444736000000000")).toString();
input = input.add(new BigInteger("116444736000000000"));
if (format === "Hex"){
return input.toString(16);
} else {
return input.toString();
}
},


/**
* @constant
* @default
*/
FILETIME_FORMATS: ["Decimal", "Hex"],


/**
* @constant
* @default
Expand Down

0 comments on commit ad25daf

Please sign in to comment.