Question: I use a custom hook to support dark mode with tailwindcss in my new react-native app, created with Expo CLI. The TailwindProvider with the dark mode logic looks like this:

```js
const TailwindProvider: React.FC = ({ children }) => {
  const [currentColorScheme, setcurrentColorScheme] = useState(Appearance.getColorScheme());
  console.log("CurrentColorScheme:", currentColorScheme);
  const isDarkMode = currentColorScheme == "dark";
  const tw = (classes: string) => tailwind(handleThemeClasses(classes, isDarkMode))
  return <TailwindContext.Provider value={{ currentColorScheme, setcurrentColorScheme, tw, isDarkMode }}>{children}</TailwindContext.Provider>;
}

```

as you can see, i use the `Appearance.getColorScheme()` method from `react-native` to get the current ColorScheme. But both on iOS and Android, i always get `light` instead of `dark`, in debug as well as in production mode.

How can I fix this?

Answer: 
Use `systimestamp` since that includes a time zone.

```
select systimestamp at time zone 'US/Eastern'
  from dual;

```

should return a timestamp in the Eastern time zone (assuming your database time zone files are up to date).

Note that if you ask for a timestamp in EST, that should be an hour earlier than the current time in the Eastern time zone of the United States because the US is in Daylight Savings Time. So the Eastern time zone is in EDT currently not EST.
Use `systimestamp` rather than `sysdate`, because it is already timezone-aware; then `at time zone` to translate:

```
select systimestamp at time zone 'America/New_York' from dual

```

Using a region is better/safer than an abbreviation like 'EST", which might not be unique; and [gives you the wrong answer](https://dbfiddle.uk/?rdbms=oracle_18&fiddle=8792c9f5fb967821b6c1406e8baca6d3) - this shows mine, Justin's alternative (and maybe better!) region, what you get with EST, and all the things EST is an abbreviation of. (You could use `EST5EDT`, but a region is still clearer.)

You could also set your session to an East-coat region (if it isn't already) and then use `current_timestamp` instead of `systimestamp`:

```
alter session set time_zone = 'America/New_York';
select current_timestamp from dual;

```

[db<>fiddle](https://dbfiddle.uk/?rdbms=oracle_18&fiddle=f3f5b5a55fe5f1f5a1ff50d1ad3213ab)

Either way, how it is displayed is down to your client/application - e.g. the session `nls_timestamp_tz_format` - unless you convert it to a string with `to_char()`, supplying the format you want.