ceylon.language.system.ceylon Maven / Gradle / Ivy
"Represents the system on which the current process is
executing.
Holds information about system time and locale."
see (`value process`, `value runtime`, `value language`,
`value operatingSystem`)
tagged("Environment")
shared native object system {
"The elapsed time in milliseconds since midnight,
1 January 1970."
shared native Integer milliseconds;
"The elapsed time in nanoseconds since an arbitrary
starting point."
shared native Integer nanoseconds;
"Returns the offset, in milliseconds, to add to UTC to
get the local time for default timezone for this system."
shared native Integer timezoneOffset;
"Returns the IETF language tag representing the default
locale for this system."
shared native String locale;
"Returns the IANA character set name representing the
default character encoding for this system."
since("1.1.0")
shared native String characterEncoding;
string => "system";
}
shared native("jvm") object system {
import java.lang {
System
}
import java.util {
TimeZone,
Locale
}
import java.nio.charset {
Charset {
defaultCharset
}
}
shared native("jvm") Integer milliseconds
=> System.currentTimeMillis();
shared native("jvm") Integer nanoseconds
=> System.nanoTime();
shared native("jvm") Integer timezoneOffset
=> TimeZone.default.getOffset(milliseconds);
shared native("jvm") String locale
=> Locale.default.toLanguageTag();
shared native("jvm") String characterEncoding
=> defaultCharset().name();
}
shared native("js") object system {
shared native("js") Integer milliseconds {
dynamic {
return \iDate.now();
}
}
shared native("js") Integer nanoseconds {
dynamic {
return \iDate.now() * 1000000;
}
}
shared native("js") Integer timezoneOffset {
dynamic {
return Date().getTimezoneOffset() * -60000;
}
}
shared native("js") String locale {
return process.propertyValue("user.locale")
else normalizeLocaleTag(process.environmentVariableValue("LANG"))
else "en";
}
String? normalizeLocaleTag(String? tag) {
if (exists tag, !tag.empty) {
value p = tag.firstOccurrence('.');
String t = if (exists p) then tag[0:p] else tag;
return t.replace("_", "-");
} else {
return null;
}
}
shared native("js") String characterEncoding
=> "UTF-16"; //JavaScript always uses UTF-16
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy