Implementation
Map<String, Function> methods() {
return {
'getTime': () => dateTime.toLocal().millisecondsSinceEpoch,
'getFullYear': () => dateTime.toLocal().year,
'getMonth': () =>
dateTime.toLocal().month - 1, // JavaScript months are zero-based
'getDate': () => dateTime.toLocal().day,
'getDay': () =>
dateTime.toLocal().weekday % 7, // JavaScript days are zero-based
'getHours': () => dateTime.toLocal().hour,
'getMinutes': () => dateTime.toLocal().minute,
'getSeconds': () => dateTime.toLocal().second,
'getMilliseconds': () => dateTime.toLocal().millisecond,
'getTimezoneOffset': () => -dateTime.timeZoneOffset.inMinutes,
'toISOString': () => dateTime.toUtc().toIso8601String(),
'toLocaleDateString': _toLocaleDateString,
'toLocaleTimeString': _toLocaleTimeString,
'toLocaleString': _toLocaleString,
'toJSON': () => dateTime.toUtc().toIso8601String(),
'getUTCFullYear': () => dateTime.toUtc().year,
'getUTCMonth': () =>
dateTime.toUtc().month - 1, // JavaScript months are zero-based
'getUTCDate': () => dateTime.toUtc().day,
'getUTCDay': () =>
dateTime.toUtc().weekday % 7, // JavaScript days are zero-based
'getUTCHours': () => dateTime.toUtc().hour,
'getUTCMinutes': () => dateTime.toUtc().minute,
'getUTCSeconds': () => dateTime.toUtc().second,
'getUTCMilliseconds': () => dateTime.toUtc().millisecond,
'setFullYear': (int year) {
dateTime = DateTime(year, dateTime.month, dateTime.day, dateTime.hour,
dateTime.minute, dateTime.second, dateTime.millisecond);
return dateTime.millisecondsSinceEpoch;
},
'setMonth': (int month) {
dateTime = DateTime(
dateTime.year,
month + 1,
dateTime.day,
dateTime.hour,
dateTime.minute,
dateTime.second,
dateTime.millisecond);
return dateTime.millisecondsSinceEpoch;
},
'setDate': (int day) {
dateTime = DateTime(dateTime.year, dateTime.month, day, dateTime.hour,
dateTime.minute, dateTime.second, dateTime.millisecond);
return dateTime.millisecondsSinceEpoch;
},
'setHours': (int hour) {
dateTime = DateTime(dateTime.year, dateTime.month, dateTime.day, hour,
dateTime.minute, dateTime.second, dateTime.millisecond);
return dateTime.millisecondsSinceEpoch;
},
'setMinutes': (int minute) {
dateTime = DateTime(dateTime.year, dateTime.month, dateTime.day,
dateTime.hour, minute, dateTime.second, dateTime.millisecond);
return dateTime.millisecondsSinceEpoch;
},
'setSeconds': (int second) {
dateTime = DateTime(dateTime.year, dateTime.month, dateTime.day,
dateTime.hour, dateTime.minute, second, dateTime.millisecond);
return dateTime.millisecondsSinceEpoch;
},
'setMilliseconds': (int millisecond) {
dateTime = DateTime(dateTime.year, dateTime.month, dateTime.day,
dateTime.hour, dateTime.minute, dateTime.second, millisecond);
return dateTime.millisecondsSinceEpoch;
},
'setUTCFullYear': (int year) {
dateTime = DateTime.utc(
year,
dateTime.month,
dateTime.day,
dateTime.hour,
dateTime.minute,
dateTime.second,
dateTime.millisecond);
return dateTime.millisecondsSinceEpoch;
},
'setUTCMonth': (int month) {
dateTime = DateTime.utc(
dateTime.year,
month + 1,
dateTime.day,
dateTime.hour,
dateTime.minute,
dateTime.second,
dateTime.millisecond);
return dateTime.millisecondsSinceEpoch;
},
'setUTCDate': (int day) {
dateTime = DateTime.utc(
dateTime.year,
dateTime.month,
day,
dateTime.hour,
dateTime.minute,
dateTime.second,
dateTime.millisecond);
return dateTime.millisecondsSinceEpoch;
},
'setUTCHours': (int hour) {
dateTime = DateTime.utc(dateTime.year, dateTime.month, dateTime.day,
hour, dateTime.minute, dateTime.second, dateTime.millisecond);
return dateTime.millisecondsSinceEpoch;
},
'setUTCMinutes': (int minute) {
dateTime = DateTime.utc(dateTime.year, dateTime.month, dateTime.day,
dateTime.hour, minute, dateTime.second, dateTime.millisecond);
return dateTime.millisecondsSinceEpoch;
},
'setUTCSeconds': (int second) {
dateTime = DateTime.utc(dateTime.year, dateTime.month, dateTime.day,
dateTime.hour, dateTime.minute, second, dateTime.millisecond);
return dateTime.millisecondsSinceEpoch;
},
'setUTCMilliseconds': (int millisecond) {
dateTime = DateTime.utc(dateTime.year, dateTime.month, dateTime.day,
dateTime.hour, dateTime.minute, dateTime.second, millisecond);
return dateTime.millisecondsSinceEpoch;
},
'setTime': (int milliseconds) {
dateTime = DateTime.fromMillisecondsSinceEpoch(milliseconds);
return dateTime.millisecondsSinceEpoch;
},
'valueOf': () => dateTime.millisecondsSinceEpoch,
'toString': () => dateTime.toString()
};
}