Online Compilers

[AutoHotkey] [C] [C++] C++ Shell [hotkey: unknown] [version: multiple e.g. 202002] [note: std::format failed with ints] [note: pre-includes <algorithm>] [note: prints non-ASCII chars as other chars] [time zone: local] [saves code: yes] Online C++ Compiler - Programiz [hotkey: Ctrl+Enter] [version: 201703] [note: supports Unicode chars including emojis] [time zone: UTC] [saves code: no] Online C++ Compiler - online editor [hotkey: F9] [version: multiple e.g. 202302] [note: std::format worked with ints (C++ 20 compiler)] [time zone: UTC] [saves code: no] Online C++ Compiler and Visualizer [hotkey: Ctrl+Shift+Enter] [version: 202002] [note: pre-includes <algorithm> and <format>] [note: std::format worked with ints] [time zone: UTC] [saves code: yes] [note: supports std::chrono::zoned_time (but not std::chrono::parse/std::chrono::from_stream)] [C++] gcc 13.2.0 - Wandbox [hotkey: Ctrl+Enter] [version: multiple e.g. 202100] [time zone: UTC] [saves code: yes] [note: gcc 16 supports std::chrono::zoned_time and std::chrono::parse/std::chrono::from_stream] Compiler Explorer [hotkey: unknown] [version: multiple e.g. 202002] [time zone: UTC] [saves code: yes] [note: supports std::chrono::zoned_time and std::chrono::parse/std::chrono::from_stream] [e.g. compiler options: -std=c++20] [C#] [note: change globalisation settings, e.g. how dates are printed: System.Globalization.CultureInfo.CurrentCulture = new System.Globalization.CultureInfo("en-CA-u-hc-h23")] | C# Online Compiler | .NET Fiddle [hotkey: unknown] [version: multiple e.g. .NET 9.0.0 (C# 13)] [note: F5 refreshes and executes] [time zone: UTC] [saves code: yes] Online C# Compiler (Editor) - Programiz [hotkey: Ctrl+Enter] [version: 4.0.30319.42000] [time zone: UTC] [saves code: no] Online C# Compiler (Mono) [hotkey: Ctrl+Enter] [version: 4.0.30319.42000] [time zone: UTC (was IST)] [saves code: no] Online C# Compiler (Editor) [hotkey: Ctrl+Enter] [version: multiple e.g. .NET 7.0.13 (C# 11)] [time zone: UTC] [saves code: no] [Crystal] [set time zone: Time::Location.local = Time::Location.load("Europe/London")] Compile & run code in Crystal [hotkey: Ctrl+Enter] [version: multiple e.g. 1.18.1] [time zone: UTC, can set it] [saves code: yes] Online Crystal Compiler - Online Crystal Editor - Run Crystal Online - Online Crystal Runner [hotkey: Ctrl+Enter] [version: 1.10.1] [time zone: UTC, can set it] [saves code: no] [Dart] [Excel] [Excel VBA] [Go] [set time zone (once the 'time' package is used, it doesn't check for 'TZ' updates): os.Setenv("TZ", "Europe/London")] Go Playground - The Go Programming Language [hotkey: Shift+Enter] [version: 1.25.3] [time zone: MAJOR WARNING: time.Now() is stuck at '2009-11-10 23:00:00 +0000 UTC' (Go's date of birth)] [saves code: no] Online Go Compiler - Programiz [hotkey: Ctrl+Enter] [version: 1.23.10] [time zone: UTC] [saves code: no] Online Go Lang Compiler [hotkey: Ctrl+Enter] [version: multiple e.g. 1.21.4] [time zone: UTC] [saves code: no] Online Go Compiler [hotkey: Ctrl+Enter] [version: 1.13.5] [time zone: UTC (was IST)] [saves code: no] Go (Go Lang) Online Compiler [hotkey: Ctrl+Enter] [version: 1.23.5] [time zone: UTC] [saves code: yes] [Haskell] Online Haskell Runner [hotkey: Ctrl+Enter] [version: multiple e.g. GHC 9.0.2] [time zone: UTC] [saves code: no] [Java] [set time zone: java.util.TimeZone.setDefault(java.util.TimeZone.getTimeZone("Europe/London"));] Online Java Compiler - Programiz [hotkey: Ctrl+Enter] [version: 21.0.7] [note: prints non-ASCII chars as '?'] [note: ‘’“” are interpreted as single/double quotes] [note: line breaks sometimes (randomly?) not printed] [time zone: UTC, can set it] [saves code: no] Online Java Compiler | Java Editor [hotkey: Ctrl+Enter] [version: multiple e.g. 21.0.0] [note: supports Unicode chars including emojis] [note: ‘’“” are interpreted as chars with no special meaning] [time zone: UTC, can set it] [saves code: no] Java Online Compiler [hotkey: Ctrl+Enter] [version: 21.0.4] [time zone: UTC, can set it] [saves code: yes] [JavaScript] [set time zone (Node.js): process.env.TZ = "Europe/London";] Online JavaScript Compiler (Editor) - Programiz [hotkey: Ctrl+Enter] [version: 22.16.0 (Node.js)] [time zone: UTC, can set it] [saves code: no] JavaScript Online Compiler & Interpreter [hotkey: Ctrl+Enter] [version: 20.18.0 (Node.js)] [time zone: UTC, can set it] [saves code: yes] NodeJS Online Editor [hotkey: Ctrl+Enter] [version: multiple e.g. 21.2.0 (Node.js)] [time zone: UTC, can set it] [saves code: no] Temporal documentation [hotkey: Enter] [version: unknown] [time zone: local, can't set it] [note: the Temporal class is available to test in the web browser console when viewing this webpage] [saves code: no] [Kotlin] [set time zone: java.util.TimeZone.setDefault(java.util.TimeZone.getTimeZone("Europe/London"))] Kotlin Playground: Edit, Run, Share Kotlin Code Online [hotkey: Ctrl+F9] [version: multiple e.g. 1.9.25] [time zone: UTC, can't set it] [saves code: yes] Kotlin Online Compiler [hotkey: Ctrl+Enter] [version: 1.3.70] [time zone: UTC, can set it] [saves code: yes] [Lisp (Common Lisp)] compile lisp online [hotkey: F8] [version: CLISP 2.49.60] [time zone: CET (out of sync by around 10 min)] [saves code: no] CLISP Online Editor [hotkey: Ctrl+Enter] [version: multiple e.g. CLISP 2.49.93] [time zone: UTC] [saves code: no] [Pascal] [Perl] [PHP] [set time zone: date_default_timezone_set("Europe/London");] PHP Sandbox - Execute PHP code online through your browser [hotkey: Ctrl+Enter] [version: multiple e.g. 8.4.10 (default: 8.2.20)] [note: cookie prompt on entering] [time zone: UTC, can set it] [saves code: yes] Online PHP Compiler - Programiz [hotkey: Ctrl+Enter] [version: 8.2.28] [time zone: UTC, can set it] [saves code: no] W3Schools Tryit Editor [hotkey: Ctrl+Alt+R] [version: 7.1.1-1] [note: supports GMP functions] [note: to print '\n' use '<br>'] [time zone: UTC, can set it] [saves code: no] PHP Online Compiler [hotkey: Ctrl+Enter] [version: 8.3.6] [time zone: UTC, can set it] [saves code: yes] [Python] [set time zone: import os, time; os.environ["TZ"] = "Europe/London"; time.tzset()][note: tzset() is for Unix-like OSes only] Trinket: run code anywhere [hotkey: Ctrl+Enter] [version: 3.10.9] [time zone: UTC, can set it] [saves code: yes] Online Python - IDE, Editor, Compiler, Interpreter [hotkey: F8] [version: 3.8.5] [note: awkward to select output, can click 'Copy to Clipboard' button] [note: cookie prompt on entering, 'Leave site' prompt on leaving] [time zone: UTC, can't set it] [saves code: yes] Python-Fiddle: Online Python IDE, Compiler, and Interpreter [hotkey: Shift+Enter] [version: 3.12.7] [time zone: local, can't set it] [saves code: yes] Python Online Compiler & Interpreter [hotkey: Ctrl+Enter] [version: 3.12.3] [time zone: UTC, can set it] [saves code: yes] Online Python 3 Compiler [hotkey: Ctrl+Enter] [version: multiple e.g. 3.11.5] [time zone: UTC, can set it] [saves code: no] Python 2 Online Compiler & Interpreter [hotkey: Ctrl+Enter] [version: 2.7.17] [time zone: UTC, can set it (tzset() is unnecessary)] [saves code: yes] [R] [set time zone: Sys.setenv(TZ="Europe/London")] Online R Compiler - Programiz [hotkey: Ctrl+Enter] [version: 4.2.3] [time zone: UTC, can set it] [saves code: no] R Online Compiler | Run R Code Online [hotkey: Ctrl+Enter] [version: multiple e.g. 4.3.2] [time zone: UTC, can set it] [saves code: no] R Online Compiler [hotkey: Ctrl+Enter] [version: 4.3.3] [time zone: UTC, can set it] [saves code: yes] [Raku] [Ruby] [set time zone: ENV["TZ"] = "Europe/London"] Ruby Online Compiler & Interpreter [hotkey: Ctrl+Enter] [version: 3.2.3] [time zone: UTC, can set it] [saves code: yes] Online Ruby Compiler (Editor) - Programiz [hotkey: Ctrl+Enter] [version: 3.4.4] [time zone: UTC, can set it] [saves code: no] Ruby Online Compiler | Online Ruby Editor [hotkey: Ctrl+Enter] [version: multiple e.g. 3.0.6] [time zone: UTC, can set it] [saves code: no] [Rust] Rust Playground [hotkey: Ctrl+Enter] [version: multiple e.g. 1.90.0] [time zone: UTC] [link: Cargo.toml] [saves code: yes] [note: supports chrono (but not chrono-tz)] Online Rust Compiler - Programiz [hotkey: Ctrl+Enter] [version: unknown] [time zone: UTC] [saves code: no] Rust Online Compiler [hotkey: Ctrl+Enter] [version: multiple e.g. 1.73.0] [time zone: UTC] [saves code: no] Compiler Explorer [hotkey: unknown] [version: multiple e.g. 1.91.0] [time zone: UTC] [saves code: yes] [Scala] [set time zone: java.util.TimeZone.setDefault(java.util.TimeZone.getTimeZone("Europe/London"))] Scastie [hotkey: Ctrl+Enter] [version: multiple e.g. 3.7.2] [time zone: UTC, can set it] [saves code: yes] Online Scala Compiler [hotkey: Ctrl+Enter] [version: multiple e.g. 2.13.12] [time zone: UTC, can set it] [saves code: no] [SQL] [SQL (MySQL)] [set time zone: SET time_zone = 'Europe/London';] DB Fiddle - SQL Database Playground [hotkey: Ctrl+Enter] [version: multiple e.g. 9.0.1] [note: error running stored functions] [time zone: UTC, can set it] [saves code: no] MySQL Online Editor [hotkey: Ctrl+Enter] [version: 8.0.27] [note: disallows running stored functions] [time zone: UTC, can set it] [saves code: yes] MySQL Online | Online editor and compiler [hotkey: Ctrl+Enter] [version: 8.0.43] [note: allows running stored functions] [time zone: UTC, can set it] [saves code: yes] db<>fiddle [hotkey: Ctrl+Enter] [version: multiple e.g. 8.4.3] [note: allows running stored functions] [time zone: UTC, can't set it] [saves code: yes] [SQL (PostgreSQL)] [set time zone: SET timezone = 'Europe/London';] [set null string: \pset null NULL] DB Fiddle - SQL Database Playground [hotkey: Ctrl+Enter] [version: multiple e.g. 17.0] [time zone: UTC, can't set it] [saves code: no] PostgreSQL Online Editor [hotkey: Ctrl+Enter] [version: 14.19] [time zone: UTC, can set it] [saves code: yes] Free PostgreSQL Online | PostgreSQL Playground | PostgreSQL Sandbox [hotkey: unknown] [version: 17.5] [note: cookie prompt on entering] [time zone: UTC, can set it] [note: was pgplayground.com] [saves code: no] SQL Online AiDE - Next gen SQL Editor | SQL Compiler | sql compiler [hotkey: Shift+Enter] [version: 17.5] [note: see PostgreSQL in the sidebar] [note: splits output across tabs] [time zone: UTC, can set it] [saves code: yes] db<>fiddle [hotkey: Ctrl+Enter] [version: multiple e.g. 18 beta 1] [time zone: UTC, can set it] [saves code: yes] [SQL (SQLite)] [set null string: .nullvalue NULL] [print table outlines: .mode table] [generate_series workaround: SELECT key FROM json_each('[0,0,0]')] DB Fiddle - SQL Database Playground [hotkey: Ctrl+Enter] [version: multiple e.g. 3.46.1] [time zone: UTC] [print null: 'null', can't set it] [generate_series(): NOT supported] [saves code: no] Online SQL Compiler [hotkey: Ctrl+Enter] [version: 3.45.1] [time zone: UTC (was IST)] [print null: '', can set it] [generate_series(): supported] [saves code: no] SQLite Compiler | Online Compiler | Newton School [hotkey: Ctrl+Enter] [version: 3.41.1] [time zone: UTC] [print null: '', can set it] [generate_series(): supported] [saves code: yes] SQL Online AiDE - Next gen SQL Editor | SQL Compiler | sql compiler [hotkey: Shift+Enter] [version: 3.50.4] [note: splits output across tabs] [time zone: local] [print null: 'NULL', can't set it] [generate_series(): NOT supported] [saves code: yes] Online SQL Compiler | JDoodle [hotkey: Ctrl+Enter] [version: multiple e.g. 3.44.0] [time zone: UTC] [print null: '', can set it] [generate_series(): supported] [saves code: no] Online SQL Editor [hotkey: unknown] [version: 3.38.5] [time zone: local] [print null: 'NULL', can't set it] [generate_series(): NOT supported] [saves code: no] SQLite Online Editor [hotkey: Ctrl+Enter] [version: 3.27.2] [time zone: UTC] [print null: '', can set it] [generate_series(): NOT supported] [saves code: yes] db<>fiddle [hotkey: Ctrl+Enter] [version: multiple e.g. 3.39.1] [time zone: UTC] [print null: 'null', can't set it] [generate_series(): NOT supported] [saves code: yes] [Swift] [set time zone: NSTimeZone.default = TimeZone(identifier:"Europe/London")!] Online Swift Compiler - Programiz [hotkey: Ctrl+Enter] [version: 5.8.1] [time zone: UTC] [saves code: no] Swift Online Compiler [hotkey: Ctrl+Enter] [version: multiple e.g. 5.9.1] [time zone: UTC] [saves code: no] Online Swift Compiler [hotkey: Ctrl+Enter] [version: 5.2.3] [time zone: UTC (was IST)] [saves code: no] SwiftFiddle - Swift Online Playground [hotkey: Ctrl+Enter] [version: multiple e.g. 6.2] [time zone: Etc/UTC] [saves code: yes] Swift Online Compiler [hotkey: Ctrl+Enter] [version: 5.2.3] [time zone: UTC] [saves code: yes] [TypeScript] [Notes] version numbers/webpage titles/URLs: all version numbers were checked 2025-10-22 (some have been checked since) all webpage titles were checked 2025-10-22 URLs have been updated occasionally, but not checked systematically considerations (version numbers): whether the version number is stated explicitly (or obtainable in-script via code) whether versions are updated at least once a year whether older versions are available whether the library for obtaining the version number is available for include/import (if a library is a needed) note: two of the best uses for online compilers are: trying out new features, and testing whether code works on older versions considerations (further): whether have a run/execute hotkey (e.g. that displays when you hover over the Run(/Execute Code) button) (avoid F5 as this typically does refresh, so muscle memory could make you press it on the wrong online compiler and lose information, or if use F5, also have an alternative) whether IF YOU CLOSE AND REOPEN THE TAB (OR REFRESH), THE CODE IS STILL THERE (e.g. stores code in web browser, or via the URL) whether you can select and copy the output easily whether common libraries are available for include/import (e.g. the library for obtaining the version number) whether any pre-included libraries are explicitly stated whether tabs are treated as tabs or spaces whether Unicode characters are handled or not whether multiple versions of the programming language are available (useful for writing backwards compatible code) whether have a favicon (for quick identification amongst many tabs) whether demo code, if present, includes 'print' or equivalent (for convenience) whether the title/URL/'hello word' example code contains the programming language name or not (useful for record-keeping, identifying the programming language) whether the specific programming language and/or version number can be accessed directly via a URL/URL containing options, or whether manual selection is required whether a URL/URL containing options is available to access the newest/latest version of the programming language available on the website whether a temporary ID in the URL allows you to share the code via a URL whether base 64 in the URL allows you to share the code via a URL whether a specific URL or option button, allows you to access one or more default 'hello world' code examples whether have an autocomplete drop-down menu (this can often slow down writing code) whether have useful editor features e.g. highlight matching parentheses, show next parameter name, highlight code that matches the selection whether dark mode is available whether changing the language/language version clears the code whether there is a close tab prompt (clicking 'no' on the prompt 99%-100% of the time, is worse than very occasionally closing the tab accidentally and reopening the tab, this requires that reopening restores the code) whether there is a cookie prompt on entering whether code snippets are searchable (i.e. examples are useful, and users should consider their privacy) whether the local time zone is available (to be able to test date functions using your local time zone, or to spoof a specific local time zone, rather than have the 'local' time zone be set to UTC regardless of your location) note: one online compiler had a bug where some line breaks were sometimes (randomly?) not printed note: some common hotkeys: Ctrl+Enter (also seen: F5, F8, Ctrl+F9, Shift+Enter, Ctrl+Shift+Enter)