summaryrefslogtreecommitdiff
path: root/core/os/os.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/os/os.cpp')
-rw-r--r--core/os/os.cpp34
1 files changed, 33 insertions, 1 deletions
diff --git a/core/os/os.cpp b/core/os/os.cpp
index 1a3c9ac5f8..925154af7d 100644
--- a/core/os/os.cpp
+++ b/core/os/os.cpp
@@ -51,6 +51,35 @@ uint32_t OS::get_ticks_msec() const {
return get_ticks_usec() / 1000;
}
+String OS::get_iso_date_time(bool local) const {
+ OS::Date date = get_date(local);
+ OS::Time time = get_time(local);
+
+ String timezone;
+ if (!local) {
+ TimeZoneInfo zone = get_time_zone_info();
+ if (zone.bias >= 0) {
+ timezone = "+";
+ }
+ timezone = timezone + itos(zone.bias / 60).pad_zeros(2) + itos(zone.bias % 60).pad_zeros(2);
+ } else {
+ timezone = "Z";
+ }
+
+ return itos(date.year).pad_zeros(2) +
+ "-" +
+ itos(date.month).pad_zeros(2) +
+ "-" +
+ itos(date.day).pad_zeros(2) +
+ "T" +
+ itos(time.hour).pad_zeros(2) +
+ ":" +
+ itos(time.min).pad_zeros(2) +
+ ":" +
+ itos(time.sec).pad_zeros(2) +
+ timezone;
+}
+
uint64_t OS::get_splash_tick_msec() const {
return _msec_splash;
}
@@ -239,7 +268,8 @@ void OS::print_all_resources(String p_to_file) {
_OSPRF = FileAccess::open(p_to_file, FileAccess::WRITE, &err);
if (err != OK) {
_OSPRF = NULL;
- ERR_FAIL_COND(err != OK);
+ ERR_EXPLAIN("Can't print all resources to file: " + String(p_to_file));
+ ERR_FAIL();
}
}
@@ -759,6 +789,8 @@ OS::OS() {
}
OS::~OS() {
+ if (last_error)
+ memfree(last_error);
memdelete(_logger);
singleton = NULL;
}