text:
Output the Current Time
Challenge
You must output the current time continuously (until cancelled by an interrupt), once every second, by any of the following means:

It must be in 24-hour or AM/PM format.

If it is the former, it must be spaced out with colons (i.e. 15:47:36).
If it is the latter, it must be spaced out with colons and have the AM/PM following (i.e. 3:47:36 PM)

It may be pulled from the internet.
It may be the system time.
It must output any naturally accessible form of output which supports text that you choose.
Output may have extra information aside of the time in it, but you must guarantee one, and only one, output of time per second.
The continuous output must be a second apart - if you choose to wait until the second changes between outputs, that is fine. If you wait a second between each output, that is perfectly acceptable, despite the eventual loss of accuracy.

Since this is a catalog, languages created after this challenge are allowed to compete. Note that there must be an interpreter so the submission can be tested. It is allowed (and even encouraged) to write this interpreter yourself for a previously unimplemented language. Other than that, all the standard rules of code-golf must be obeyed. Submissions in most languages will be scored in bytes in an appropriate preexisting encoding (usually UTF-8).
Catalog
The Stack Snippet at the bottom of this post generates the catalog from the answers a) as a list of shortest solution per language and b) as an overall leaderboard.
To make sure that your answer shows up, please start your answer with a headline, using the following Markdown template:
## Language Name, N bytes

where N is the size of your submission. If you improve your score, you can keep old scores in the headline, by striking them through. For instance:
## Ruby, <s>104</s> <s>101</s> 96 bytes

If there you want to include multiple numbers in your header (e.g. because your score is the sum of two files or you want to list interpreter flag penalties separately), make sure that the actual score is the last number in the header:
## Perl, 43 + 2 (-p flag) = 45 bytes

You can also make the language name a link which will then show up in the snippet:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes

var QUESTION_ID=65020,OVERRIDE_USER=44713;function answersUrl(e){return"//api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"//api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="
"+e.body.replace(OVERRIDE_REG,"")+"
")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;float:left}table thead{font-weight:700}table td{padding:5px}
 <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b">

Leaderboard

	Author	Language	Size

Winners by Language

Language	User	Score

{{PLACE}}	{{NAME}}	{{LANGUAGE}}	{{SIZE}}	Link

{{LANGUAGE}}	{{NAME}}	{{SIZE}}	Link

Does "until cancelled by an interrupt" include closing the program or does it need a mechanism to stop the cycle coded into it?

@user81655 Yes, it can be any form of interrupt - don't worry about coding that bit.

Is it okay if your language's kernel automatically intercepts interrupts to show a debug menu?

@LegionMammal978 Absolutely fine. Extra output doesn't really matter, as long as the program at some point continuously outputs time.

@VoteToClose Does that mean my answer doesn't actually need the substring call?

@SuperJedi224 Absolutely correct.

Also, if it is in fact allowed to print more than just the current time, you should explicitly say so in the question.

Shall there be a tag [tag:catalog] for "Since this is a catalog, languages created after this challenge are allowed to compete."?

@Vi. http://meta.codegolf.stackexchange.com/questions/6961/should-there-be-a-catalog-tag-e-g-shortest-in-every-language

Are we allowed to display something like 01:47:2 for 01:47:02?

@ThomasKwa I don't really see a problem with it, as it is human-readable as a time.

From my Snap! answer, do I have to keep the wait 1 sec block? It's going to be still like 9:21:8...9:21:9... because unlike most other languages it doesn't keep whatever it said before.

@ev3commander If it's only one visible output per second, then that should be fine.

Looking at your watch: 0 bytes ಠ_ಠ

May there be spaces between the parts and the colons? 12 : 23 : 34

@NBZ Yes, that's fine.

Warning: All sleep 1 based answer break rule 5: you must guarantee one, and only one, output of time per second. !!

F. Hauri: How so? Rule 6 says "If you wait a second between each output, that is fine as well."

@VoteToClose Can I wait a second before the first output?

@EriktheOutgolfer I don't see a reason to disallow it.

@YetiCGN in single threaded solutions sleep needs to be tuned to compensate for the time elapsed looping and printing, else one of the printout valies will be skipped sooner or later.  therefor breaking "must be one second apart"  a "solution" that outpute 1000001 microseconds apart is not compliant so far as I can tell.

@Jasen Please read the sixth rule, which provides an exception to that.

rules six does not say "you may ignore the description and rule five and do this instead" it only says must...

@Jasen No, but the meaning of "that is fine" implies that the wait option is still valid, regardless of the eventual time loss. I have clarified this for you.

the time of the first incorrect output is random therefore, program only has to output once! ???

Minecraft 1.8.7, 7 + 8 = 15 blytes (bytes + blocks)
Only one command block involved:
xp 1 @p
Output goes to the client console like so:

As part of the normal output.
This is the system:

xp gives a specified amount of experience to a specified player with the syntax xp <amount> <player>. I'm pretty sure this is the smallest command that has singular output that I can get, now.

Doesn't this solution also depend on the existence of the repeaters and their timings? That would add more bytes.

@LegionMammal978 I accounted for that - 12 (bytes of code) + 8 (blocks used).

Don't say "19 bytes" because you didn't measure your answer size in bytes.

@feersum There's a reason for me saying bytes, trust me. This is the closest thing to a consensus for MC as of now.

You can use the deprecated number codes can't you?

Use this scoring system if you want, 19 whatevers, but it isn't 19 bytes, because there is no previously defined encoding that allows you to store this solution in a 19-byte file.

@CᴏɴᴏʀO'Bʀɪᴇɴ I'd have to wrap it in JSON, I believe. Unless I used 1.6, but that's practically another language.

@VoteToClose Does an error message show up on both sides? (Also, for reference, the GZIP'ped schematic is 211 bytes long.)

@LegionMammal978 What do you mean by error message? (I'm using the consensus byte count. :P Although I am interested in how you get the schematic...?)

@VoteToClose It should produce an error message when given an invalid command such as a, and I was wondering if this showed up on both the server and client. I can't use MC right now, so I was wondering if you could test it. I hand-wrote the 256-byte schematic, then used gzip -n9 on it. The new tp version is 206 bytes long.

@LegionMammal978 Error does not go to client console. Also, I just found a shorter way with xp 1 @p.

@VoteToClose If the error doesn't go to the client, then you can use its timestamp!

@LegionMammal978 The error is only put out to the command block timestamp, which is only accessible by clicking it. Don't think it really counts as continuous output.

Let us continue this discussion in chat.

Or, to give you much more experience, do xp 9 @p.

@ev3commander Eh. Who needs xp, anyways?

Couldn't you use say a?  I am 99% sure that only puts one thing in the log.  (It says a in the chat).

@Pokechu22 It puts a command output AND a chat output, so no

is that the smallest redstone creation you can make

@ev3commander Couldn't find another way to delay a second. :P

Use 1.9/1.10  repeating and chain command blocks. You can golf furthur than this with them .

@GLASSIC I don't think I can - I need that second delay, and to use a repeating command block querying for a second of change in daytime would take more bytes than it's worth.

Why not 6 block timer? Why not me .?

JavaScript, 32 bytes
setInterval("alert(Date())",1e3)

Uses the fact that setInterval evaluates code. This is not recommended, but when was that a concern in code golf?
Date() returns the current time and date in a format like this (may vary per system).
 Wed Jul 28 1993 14:39:07 GMT-0600 (PDT)

Would setInterval(alert,1e3,Date()) work instead?

@ETHproductions It always shows the same time for me

@ETHproductions in your example Date() will only be evaluated once when you create the interval

Snap, 8 7 6 blocks
(source: cubeupload.com)
(Yes, I changed it in MS Paint because I was too lazy to make another screenshot. So what? At least it's readable.)
click the script to run

24-hour clock.

I always love graphical programming languages. :D +1

oh hey ev3! I know you from Snap/Scratch forums :P why do you need Snap instead of Scratch, exactly?

@anOKsquirrel Because I don't need to nest all those join blocks.

Shouldn't that read 9:21:08?

@Luke As shown by the TI-BASIC answer, the time without the leading zero in an output is fine. It is human readable and clear what the time is.

That image gives me a 404. It would be preferable to upload essential images to SE's imgur account, which should never be deleted.

It works fine for me.

Using 'MS Paint' should disqualify anyone at anytime.

Oh, ok, so scratch counts as a programming language as well?

sh (+ watch), 11 bytes
Script:
watch -n1 .

(no trailing newline)
Output:
Every 1,0s: . (SPACES) Sat Nov 28 19:07:51 2015

The amount of spaces depends on the terminal width.
Tested on Debian8 and NetBSD7.

Right tool for the job, +1

Wait, does this count as a programming language? Can you give me a link to an interpreter?

@VoteToClose watch is a coreutil. The real language is bash/sh.

So... shouldn't this be Bash (distribution), not watch? @Doorknob

According to apt-file watch is in package procps. I'll change the language to sh.

Hmm You have to use -p switch to not break the rule you must guarantee one, and only one, output of time per second.!!

watch is a coreutil, but only code written is -pn1 .

Python 2, 47 bytes
from time import*
while[sleep(1)]:print ctime()

No online link because ideone times out (huehuehue) before printing anything.
Thanks to @xsot for the while[sleep(1)] trick and the ctime trick.
Prints out the current date and time like so: Fri Nov 27 21:23:02 2015

/me claps slowly at the pun. Very funny Mego. ;D

I've posted your solution for Python 3

sleep 1 based answer break rule 5: you must guarantee one, and only one, output of time per second.

@F.Hauri sleep 1 causes the current thread to sleep for exactly one second. It complies with the rules.

@Mego No: If you sleep exactly 1 second between each operation of printing system time, If printing time take only 1 µs, You will miss 1 output every million of sec.

@F.Hauri It's more likely that something else beyond the program's control (like exhaustion of resources, a crash/reboot, cosmic rays, etc.) will happen that disrupts the program's execution in the 11.5 days of continuous running that it would take for a 1-microsecond delay for printing to build up to missing a second.

Printing time could take a lot more than just 1µs! Anyway you're wrong: sleep 1 break rule 5.

@F.Hauri Considering that the challenge author himself uses the equivalent of sleep(1) in both his AppleScript solution and his Vitsy+bash solution, it's clearly acceptable.

I disagree. if it was acceptable he would have said approximately.

Javascript ES6, 43 39 bytes
setInterval(_=>console.log(Date()),1e3)

Works with my current time settings (which have not been changed for some time, thank you), at least.
4 bytes saved by Conor O'Brien.

alert is shorter?

@Maltysen I think in many browsers you have to close one alert window in order to see the next one.

@Maltysen I tried it, messes up the interval somehow

You don't need .toTimeString() in Chrome and FF.

I think you can replace new Date() with Date()

Perl, Command Line, 24 bytes
sleep(say)while$_=gmtime

This must be run from the command line, as perl -E'sleep(say)while$_=gmtime' (on windows, use double quotes instead). The date will be output along with the time, which seems to be allowed.

Perl, 25 bytes
sleep print$/.gmtime;do$0

In a scalar context, gmtime will return a string similar to Sat Nov 28 10:23:05 2015. The result from print, always 1, is used as the parameter for sleep. do$0 is used to execute the script again, after the timer has finished.

As evidenced by @VoteToClose's AppleScript solution and comment, you do not need to extract the time.

Another 24-byte solution: {sleep say~~gmtime;redo}.

sleep 1 based answer break rule 5: you must guarantee one, and only one, output of time per second.

@F.Hauri the rule was added after this post was made.

Arcyóu, 27 bytes
(@ t(pn(zz 1)(p(st %H:%M:%S

I had to kludge together two new functions for this challenge, zz and st.
pn: Exactly like Lisp's progn.
zz: Direct link to Python's time.sleep.
st: Direct link to Python's time.strftime.
Normally, quotes would be necessary around the format string, but since there are no spaces, it's parsed as a symbol. The interpreter evaluates undefined symbols as themselves, so we get a string.

I would up vote, but I don't have any votes left. +1 ;c And nice updates. :D

Bash, 51 31 24 21  20 bytes
Thanks to @quartata for some very helpful comments. Thank you @Dennis for clarifications and for chopping off even more bytes. Thank you @VoteToClose for clarifying the rules (which apparently I am bad at reading) further reducing the bytes.
date  displays the the full date with a 24 hour clock. sleep 1 sleeps for a second. exec $0 loops the script infinitely.
date;sleep 1;exec $0

You don't need the shebang.

Also, I think you can replace the true with the sleep 1 since sleep returns a 1.

date +%T;sleep 1;exec $0 is a bit shorter. @quartata Nitpicking: sleep has exit code zero, which is why while continues.

Oh I'm an idiot

You don't need to cut the string down, it can have extraneous output. c: Your code now becomes date;sleep 1;exec $0.

You don't need the space after date, so this is only 20 bytes.

some seconds wil be missed if you wait long enough.

Befunge 98, 53 bytes
 v
v>"EMIT"4(>H.8,':,M.8,':,S:.8,d,
>:S-    !!k^

Notes:

This program does not zero-pad the numbers it prints.
This program prints a space and then a backspace character after every number, as the . command prints an implicit space at the end.
The size of the stack in this program grows every second, and thus it will eventually run out of memory.
This program will overwrite the previous time when it prints a new one. To make it print each time on a new line, change the d on the first line to an a

Why is the "TIME" string necessary? Is there some way it's grabbing it? (I didn't know about this)

The "EMIT"4( at the beginning of the program is telling the interpreter to load the TIME fingerprint, which enables the H,M, and S instructions. (No, it doesn't emit the number 4).

That is awesome. I never even thought that many esolangs would do this, +1.

@VoteToClose Befunge 98 even has an instruction to execute an arbritrary program popped from the stack.

runs off to learn this language Excuse me...

mIRC 7.49 20 16 Bytes
/timer 0 1 $time

Where can we test this?

You have to download mIRC it's a shareware IRC client. You can download it from: http://www.mirc.com/ also since the answer above makes use of say you will need to connect to a server and then join a channel. other wise you would use echo instead of say. mIRC has it's own scripting language mSL(mIRC scripting language)

PHP, 37 bytes
<?=date('G:i:s');header('refresh:1');

Outputs the formatted server time and sets the page to refresh every second.
Of course, it depends on your internet connection and how fast-repsonding your server is :)
Demo

Nope, no refreshing : Warning: Cannot modify header information - headers already sent

@Martijn I have no idea what you can mess with, because it works for me :)

I'll remove the downvote as benefit of the doubt, but this works exactly once for me. Tried on two different regular servers.

Depends on whether you have output buffering turned on.

<?=header('refresh:1').date('G:i:s'); should work with either output bffering setting.

Jolf, 14 8 7 bytes
Crossed out 14 is a striked 1? Naw, it will never catch on ;)
Try it here! Click run, do not click on anything else ^_^ the page is highly... explosive. Yes. Fixed output system with update.
TaD#`~2

(I added some constants, and ~1 to ~4 are powers of 10.)
Explanation
setInterval("alert(Date())",1000);
     T         a      D#   ` ~2

Someone should create YAJSGV (Yet Another JavaScript Golfing Variant).

This seems to print a lot more than just the time.

@Dennis I assumed that was fine as per other solutions

My bad, I had only read yours and the Bash answer.

@Dennis Not a problem ^_^

Doesn't print once per second.

@CᴏɴᴏʀO'Bʀɪᴇɴ This doesn't guarantee output once per second, as neglecting to click the 'okay' button doesn't let it continue.

@VoteToClose okay; simple fix by changing to console logging. Will do once not on mobile

@intrepidcoder So far there are at least 3

@NeilSmithline See revisions.

@BlockCoder1392 There is function golf.

AutoHotkey, 50 bytes
x::Send,% a!=A_Sec? A_Hour ":" A_Min ":" a:=A_Sec:

Notes:

Requires you to hold x for continuous output.
Remove your finger from x to interrupt and end the output.
Output is in 24-hour format.

You could, for a few extra bytes, put that in a tooltip so it doesn't require the user to hold x.

C (on Linux x64), 179 177 175 168 159 bytes
#include<time.h>
#include<sys/time.h>
main(){struct timeval a;char b[9];for(;;){gettimeofday(&a,0);strftime(b,9,"%T",localtime(&a.tv_sec));puts(b);sleep(1);}}

Ungolfed:
#include <time.h>
#include <sys/time.h>
main(){
  struct timeval a;
  char b[9];
  for(;;){
    gettimeofday(&a, 0);
    strftime(b, 9, "%T",localtime(&a.tv_sec));
    puts(b);
    sleep(1);
  }
}

Only tested on, and likely only functions on, linux x64 (x32 might work, but other platforms probably won't).
The main difference between this program and the other posted C program is the use of linux-exclusive function calls, which, while terrible practice for real software, saves quite a few bytes...if you ignore all the compiler warnings.

Welcome to PPCG! Unless I'm mistaken, I believe you can remove the space between #include and <...>. Also, can you use 1e6 instead of 1000000?

@VoteToClose You were right about the spaces in the #includes. It doesn't look like usleep() accepts 1e6, though - based on how fast it starts spitting out timestamps it just interprets it as 1.

¯\(ツ)/¯ I don't really know C, either. I'll let the professionals at that. Welcome again, have an up vote. :D

Ah, another thing - you don't have to cut the string for just the time, so you can just output the entire date time, provided it has the time string required in it.

@VoteToClose It's actually shorter not to. The gettimeofday() syscall doesn't actually return the time of day - as far as I can tell it returns the length of time since the epoch (1/1/1970). strftime() turns that into a readable timestamp based on the system time. This is the shortest I can think to get it while only using C and syscalls.

Huh. Well done, then, +1.

I guess you can replace the NULL BY 0, saving 3 more. Try that out!

You can use %T as the format spec in strftime.

Dyalog APL, 27 18 16 bytes
':',¨⎕TS⋄→≢⎕DL 1

Try it online!
⎕TS Y M D h m s t
':',¨ prepend : to each
⋄ new statement
⎕DL 1 wait a second and return actual waited time; 1.0something seconds
≢ tally the actual waited time, giving 1
→ go to line (1 = this line)

Powershell, 19 bytes
for(){date;sleep 1}

As it's since been pointed out that output merely needs to include the hh:mm:ss you can reduce to for(){date;sleep 1}

Perl 6, 29 bytes
The right way to do this:
Supply.interval(1).tap: -> $ {
  say join ':',.hour,.minute,.whole-second given DateTime.now
}
await Promise.new; # halt this thread indefinitely

22:21:58
22:21:59
22:22:0
22:22:1
22:22:2
…

The golfed version
loop {sleep say join ':',now.polymod(1,60,60,24)[3…1]} # 56 bytes

3:59:26
3:59:27
3:59:28
3:59:29
…

Since the output doesn't have to be restricted to just the time, I can make it quite a bit shorter.
loop {sleep say DateTime.now} # 29 bytes

2015-11-27T22:18:10-06:00
2015-11-27T22:18:11-06:00
2015-11-27T22:18:12-06:00
2015-11-27T22:18:13-06:00
…

R, 38 bytes
repeat{Sys.sleep(1);print(Sys.time())}

This outputs the current time in the following format:
[1] "2015-11-28 07:34:01 CET"

 VBA,  69 Bytes
Getting the Time is easy, now() Only outputting every 1 second.... MUCH more verbose.
This is the "Right" way of waiting 1 second in VBA. 78 Bytes
Sub a():Debug.Print Now():Application.Wait Now()+TimeValue("0:0:1"):a:End Sub

Or if you want to Cut some Corners and only being right 86% of  the time is good enough 63 Bytes adding one SigFig take you to 95% accurate and a third will get you to 99.36%
Sub a():Debug.Print Now():Application.Wait Now()+1e-5:a:End Sub

If you want to get the above method to 100% then you need 69 Bytes (1/86400)
Sub a():Debug.Print Now():Application.Wait Now()+(1/86400):a:End Sub

All of these methods would stumble on a leap second Beacuse they do not wait for 1 second, But wait untill 1 second. At midnight when the clocks fall back an hour this clock will stop for 1 hour and then pick up where it left off.
VBA does allow for the Sleep Method but your byte couter is Ruined. 97 Bytes
Declare Sub Sleep Lib "kernel32" (ByVal k as Long)
Sub a():Debug.Print Now():Sleep(1e3):a:End Sub

AppleScript, 51 35 bytes
repeat
log current date
delay 1
end
Pretty dang obvious. Prints the current date, which contains the time, delays a second, then continues.

So wait, is it allowed to print out the current date as well as the time?

@quartata Yes, any concatenation with the time, as long as the time is continuously output and guaranteed to be output, is fine.

delay 1 does what? pause for 1000000000 ns?

@Jasen That's correct.

Perl, 99 81 75 51 40 36 29 27 bytes
sleep(print gmtime.$/);do$0

You can shorten it by using gmtime instead of localtime.

Also printf"%02d:%02d:%02d\n",(gmtime)[2,1,0]

gmtime."\n" will force a scalar context.

You should almost never need to do ."\n" in golf: use .$/ to save 2 bytes. At the very least, use a literal newline instead of \n to save 1 byte.

JavaScript, 47 38 35 bytes
for(p=1;t=Date();p=t)t!=p&&alert(t)

Explanation
Continuously checks if the time has changed then alerts if it has.
for(
  p=1;
  t=Date();
  p=t
)
  t!=p
    &&alert(t)

You don't have to just get the time string. ;D As long as it's in there somewhere.

@VoteToClose Oh true!

Don't think you need the +"", as without new, Date() returns a string.

@ETHproductions Ah, yes that was left there from when it used new. Thanks for catching that!

Java, 300 166 137 125 124 bytes
Nearly More than halved thanks to VoteToClose, Paülo Ebermann and janschweizer!
interface A{static void main(String[]a)throws Exception{for(;;Thread.sleep(1000))System.out.println(new java.util.Date());}}

Ungolfed:
interface A {
    static void main(String[] a) throws Exception {
        for (;; Thread.sleep(1000)) System.out.println(new java.util.Date());
    }
}

@VoteToClose Now it is Java.

Simplify your imports: java.util.* instead of the two java.util imports, java.text.* for the same reasoning. Use for(;;) for infinite loops. Use String[]a in the main declaration. Use interface A{static void main(..., as this will shorten it even more. You can use Exception over InterruptedException, and you can replace ex with e. You can also remove all text inside the catch, as this does nothing anyways.

You will need Java 8 for the interface trick. ;)

@VoteToClose Thank you so much! I just did a tiny bit of googling and got this to compile so I'll add those! I do have Java8 :)

Yeah, the interface thing is a little wacky - I have no idea why Java would let that be a thing, considering that interfaces are specifically designed to be unrunnable.

Two things: you need to change the time string to "HH:mm:ss" - as of now, you're formatting "Hour:Month:Second". Also, since you're using a loop, you can get rid of the DateFormat and Calendar variables declarations all together. You replace the contents of the for loop with System.out.println(new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()));try{Thread.sleep(1000);}catch(Exception e){}.

All of the things I just suggested, wrapped up: import java.util.*;import java.text.*;interface A{static void main(String[]a){for(;;){System.out.println(new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()));try{Thread.sleep(1000);}catch(Exception e){}}}}

I think you don't need the calendar, you can directly use new Date() for the current time.

@PaŭloEbermann Fixed, thanks!

throws Exception is shorter than a try/catch

Also, your import of java.text is not needed anymore.

Some more bytes to golf: 1. Save 3: Move Thread.sleep(1000) into for-loop - killing off two brackets { } and one semikolon ; 2. kill the import of java.util and write new java.util.Date() instead - saving another 9: interface S{static void main(String[] a)throws Exception{for(;;Thread.sleep(1000))System.out.println(new java.util.Date());}}

@janschweizer ???

Because of the brackets [], you can save a byte by removing the space in the parameter of main, i.e. main(String[]a).

@rgettman duh, I knew that but I didn't see it, thanks

Japt, 8 bytes
Japt is a shortened version of JavaScript.
1e3i@OpÐ

Test it online!
How it works
1e3i@       // Repeat this function every 1e3 milliseconds:
     OpÐ    //  Output new Date(), followed by a newline.

Note that this also outputs a seemingly random integer when the code is run. To get rid of this, use this code:
1e3i@OpÐ};P

On my computer, the time is formatted as 2015-11-28T16:00:18.013Z. If you don't like that, try this code instead:
1e3i@OpÐ s8};P

Which will lovingly print your time in the format 11:00:18 AM.

Haskell, 98 96 85 bytes
import GHC.Conc
import Data.Time
m@main=getCurrentTime>>=print>>threadDelay(10^6)>>m

Alternate version using do notation:
main = do
  time <- getCurrentTime
  print time
  threadDelay 1000000
  main

Gets the current time with getCurrentTime from the Data.Time library, then pipes it into print, waits 1,000,000 microseconds (1 second) and calls itself.
Thanks to nimi and Mauris!

m@main=...>>m is always shorter than main=...>>main

Also, since threadDelay is GHC-specific anyway, you could import it from  GHC.Conc

Batch - 34 40 bytes
I love built-in variables:
:A                    //Set label A
echo %time%           //Print the time in 24 hour format
timeout 1    //Wait 1 second (thanks DavidPostill)
goto A                //Jump back to A and repeat

There definitely needs to be some sleep command in Batch anytime soon.

No builtin sleep but there is timeout. You can replace the ping ... with timeout 1. Also the clock isn't very accurate when using ping. It's better with timeout ;)

@DavidPostill thanks for the tip, I never knew there was such a command in Windows. :)

@GiantTree You're very welcome ;)

Golf: remove :A and replace goto A with %0

, 13 chars / 25 bytes
Ĥ⇀ôᶁ⬮+⬬),1)

Try it here(Firefox only).
This is surprisingly readable.

When you say "surprisingly readable", you know you're dealing with an amusing language. +1

Dyalog APL, 36 bytes
Not very short this time.
{⎕←1↓∊'⊂:⊃,ZI2'⎕FMT 3↑3↓⎕TS⋄∇⎕DL 1}1

This outputs 24-hour time, i.e.:
14:37:44
14:37:45
14:37:46
...

Explanation:

{...}1: define a function and call it (the argument is ignored, but we need the function in order to call it recursively)

⎕TS: a system function that returns the current date and time, in the format year - month - day - hour - minute - second - millisecond. (⎕TS = timestamp)
3↑3↓: drop the first 3 items (i.e. year - month - day) and then take the first 3 items that are left (hour - minute - second).
'⊂:⊃,ZI2'⎕FMT: format each number as a two-digit integer (I2) with leading zeroes (Z), prefixed by a colon (⊂:⊃). (This results in a matrix.)
∊: Get all the elements in the matrix, in row order. (This gives a vector, in this case a string.)
1↓: drop the first character (which is an extra :)
⎕←: output it
⎕DL 1: then wait one second (⎕DL = delay)
∇: call the function recursively

{⎕←1↓∊':',¨⍕¨3↑3↓⎕TS⋄∇⎕DL 1}1 for 28 bytes, is enough as per OP.

The new rules allow garbage output and random spaces, so you can get rid of a lot.

QBasic, 18 bytes
?TIME$
SLEEP 1
RUN

Python 3, 99 Bytes
Apologies if it formats the code weird, doing this from an ipad. (dont ask). I know this code is big considering some of the other answers, but I didn't see a python one yet so I wanted to add it in.
import time
import datetime
while(True):
 print(datetime.datetime.now().time())
 time.sleep(1)

You can replace True with 1, and if you put the print and sleep lines on the same line as the while (separated with a semicolon) it saves you the whitespace.

@undergroundmonorail ok thanks for the True/1 tip. I'm not used to that since Java Dosent do that. I didn't know that Python had semicolons either. I'll look into that

Pure bash, 116 113 96 bytes
Using bash version >= 5.0, there is a new EPOCHREALTIME variable:
for((;;)){
IFS=. read s m<<<$EPOCHREALTIME
printf '%(%c)T\n'
sleep .$[(3000000-10#$m)%1000000]
}

This will output something like:
mar 03 jan 2023 10:28:27
mar 03 jan 2023 10:28:28
mar 03 jan 2023 10:28:29
...

Note: In order to save 3 byte, I've done something to not do: mixing  time() (printf '%()T') and gettimeofday() ($EPOCHREALTIME). See: WARNING! About mixing $EPOCHSECONDS and $EPOCHREALTIME (better line 3 would be: printf '%(%c)T.%s\n' $s)!!
With a little more precision:
for((;;)){
IFS=. read s m<<<$EPOCHREALTIME
printf '%(%c)T.%s\n' $s $m
read -rn1 -t .$[(3000000-10#$m)%1000000] _
}

Will output something like:
mar 03 jan 2023 10:52:44.183297
mar 03 jan 2023 10:52:45.000324
mar 03 jan 2023 10:52:46.000424
mar 03 jan 2023 10:52:47.000300
mar 03 jan 2023 10:52:48.000341
...

Woah, thems be some complicated bash

Yes, but without any external binary! (even no sleep)

K, 25 24 Bytes
Removed semicolon from the end of the func!
      .z.ts:{-1@$18h$x}
      \t 1000
  13:11:44
  13:11:45
  13:11:46
  13:11:47
  13:11:48
  ...

.z.ts is called every 1000 milliseconds.
x is the time.
18$x casts the time to the appropriate format.
$ - strings the result.
-1@(stringed result) - prints the string to the console.

*Edit Below is less but I wasn't sure whether the time format was allowed;
    .z.ts:{-1($x)}
    \t 1000
2016.08.01D00:35:37.392683000

Pyth, 19 16 bytes
It takes the relevant part of the datetime list and joins by colons. Then it passes till the second changes, with the entire thang wrapped in an infinite loop.
#j\:KP.d2WqeK.d8

While it obviously doesn't work online, you can check its main idea here.

@VoteToClose oh, I actually wrote that a couple mins before you posted. Figured it was okay since it was a catalog.

@FryAmTheEggman That's not necessary, as proven by the Stuck answer and the TI-BASIC answer. It is still human-readable and it is the time.

Also, you don't need to cut it for just the time string. ;P

Mathematica, 41 36 bytes
While[1>0,Echo@DateString[];Pause@1]

Works as a script.

Matlab, 50 42 bytes
while 1;pause(1);disp(datestr(now,13));end

I believe you can use the predefined numeric date format 13 instead of 'HH:MM:SS' and save 8 bytes.

Somehow I'm noticed this a bit late, but thank you very much!

Perfect score! :D

C/C++, 219 Bytes
Here is a first pass attempt. It is written in C++ but uses only C functionalities, so it could be used as C code with only changes to the include statements (I think).
#include<stdio.h>
#include<ctime>
time_t r;struct tm*x;int main(){char c[9],b[9];time(&r);x=localtime(&r);strftime(c,9,"%T",x);puts(c);for(;;){time(&r);x=localtime(&r);strftime(b,9,"%T",x);if(b[7]!=c[7]){break;} }main();}

I think everything is pretty straightforward. It takes the time at the beginning of the main function, then it continues getting time until one second has passed. It then calls itself.
Ungolfed:
#include<stdio.h>
#include<ctime>
time_t r;struct tm*x;
int main(){
    char c[9];char b[9];
    time(&r);
    x=localtime(&r);
    strftime(c,9,"%T",x);
    puts(c);
    for(;;){
        time(&r);
        x=localtime(&r);
        strftime(b,9,"%T",x);
        if(b[7]!=c[7]){break;} // break when the 'second' changes
    }
    main();
}

Erm... I'm not the best with C, but won't this cause a StackOverflow (if I remember right, this might be java seeping in)?

It doesn't on my computer (using g++) although int main(){main();} does cause a seg fault.

@VoteToClose I believe that tail recursion gets optimized away.

I get a segfault at about 40000 lines in (removed the waiting system). Don't think it particularly matters at that far in, though.

Okay so it does crash eventually. That makes sense. If that's an issue, it isn't too hard to change it to a loop for a few extra bytes

¯\(ツ)/¯ I don't really see a problem with 11.1111... hours of runtime max.

With the -O2 switch, gcc/g++ will perform tail call optimization. I'm not sure that's strictly necessary for this answer (since VTC already said it's fine as-is), but it's helpful to know. :)

You can #include<cstdio> instead of stdio.h.

Ruby, 25 24 bytes
Thanks @manatwork for golfing off a byte :P
loop{puts`date;sleep 1`}

Not bad.

print? Either puts or $><< are shorter with identical result.

Derp. Thanks for that. (You can tell I don't use Ruby much :P)

Vimscript, 44 bytes
while 1
echo strftime("%T")
sleep 1
endwhile

Run like so:
vim -c ":so FILE"

PHP, 33 bytes
<?for(;;)sleep(print date("r
"));

Output is similar to Sat, 28 Nov 2015 11:25:16 +0700, i.e. RFC 2822.

Not sure wether this is allowed. This doesn't output every second for me. This only creates a time value once per second, but doesnt actually show me.

Are you invoking from the command line, e.g. php time.php?

Go, 64 69 79 bytes
Go isn't very golfy.
package main;import(."fmt";."time");func main(){for{Println(Now());Sleep(1e9)}}

You could try it here or on another online interpreter however, for{} is an infinite loop and those are disallowed for obvious reasons. I haven't actually tested thisthere are no go interpreters for my android ): but it should work in theory.
Running it locally might cause your CPU fan to speed up, but it won't hog memory. If it crashes with some sort of OOM-error or panic: runtime out of bound, just change it to for x:=0;x<9999;x++{ ... }.

This sleeps for one nanosecond, which results in multiple outputs per second. You'll need Sleep(Second) to fix this.

Sleep(1e9) would work, no? I don't remember very much about Go, but I remember something like that.

@MichaelHampton fixed, thanks

@VoteToClose Yes, 1e9 works fine on my cgo 1.5.1...

I'm sitting at a PC so I can test it; it works.

Woo, helped golf a language I've never used! \o/

@VoteToClose The funny part is that gofmt puts all the whitespace back in, so Go never wins these sorts of competitions. Then again, it's a very readable language, and lots of fun to work with.

No, Go never wins [tag:code-golf] because every program starts with package main\nfunc main () {\n, not because it's beautiful and readable when formatted. I write my Go using lint-on-save and then golf it manually.

Well yes, that too. I'm using syntastic and vim-go, which has about the same result...

At least it's not Java.

CJam, 21 bytes
L{et6<':*_@={_oNo}|}h

Try it online! Note that the online interpreter will kill the program after one minute.
Same idea, but with pretty output:
L{et6<3>"%02d:"fe%sW<_@={_oNo}|}h

Try it online!

SpecBAS - 45 bytes
Prints in the upper left corner for a continuously updating 24 hour clock. Pressing Esc stops it running.
1 TEXT AT 0,0;TIME$(TIME,"hh:mm:ss"): GO TO 1

I don't know if this answer would be shorter, but you don't have to necessarily just have the time string. If you output a time string with extraneous data (but still containing the time string), that is fine, so you might have a shorter answer in store.

TIME on it's own returns a decimal number (days since 30/12/1899!) which then needed formatting to hours/min/secs format. There isn't a function/statement that just returns already formatted date/time string unfortunately.

Ceylon, 126 112 bytes
import ceylon.time{now}void p(){for(e in{now().time().string[0:8]}.cycled.paired){if(e[0]!=e[1]){print(e[1]);}}}
This uses the ceylon.time library for getting the current time (in the default timezone) and formatting it (the .string function for time outputs something like 22:33:45.234, so I just take the first 8 characters of it).
Unfortunately, there seems to be no sleep function in Ceylon (because it is not easy to implement in JavaScript), therefore I'm doing a busy loop here, comparing each formatted string to the previous one and printing only when there is a change.
Here is a formatted version of the second version, which uses a for-loop over an infinite iterable:
// print the current time (each second).
//
// Question:  http://codegolf.stackexchange.com/q/65020/2338
// My answer: http://codegolf.stackexchange.com/a/65130/2338

import ceylon.time {
    now
}

void p() {
    for(e in { now().time().string[0:8] }.cycled.paired) {
        if(e[0]!=e[1]) {
            print(e[1]);
        }
    }
}

Using a < instead of != would save a character, but then the program would stop working as soon as the clock hits midnight.
This was the original, more functional, version resulting in 112 characters:
import ceylon.time {
    now
}

void p() {
    { now().time().string[0:8] }
        .cycled
        .paired
        .map((e) => e[0] != e[1] then e[1])
        .coalesced
        .each(print);
}

Is n=now saving you bytes if you only use it once? I don't know Ceylon, but it seems redundant.

@sysreq actually, no ... for this three-letter identifier it doesn't safe anything (though it also doesn't cost bytes). I'll change this.

Processing, 68 bytes
void draw(){frameRate(1);println(hour()+":"+minute()+":"+second());}

Easy one I have to admit. In processing there is the draw() method which is called at a specific frequency that can be modified during the execution.

Can you show an example output? :D

A new line every seconds (represented by the spaces) 22:42:32 22:42:33 22:42:34 22:42:35 22:42:36 22:42:37

Oh, so it's not graphical output?

No, that's printed in the console. I'm just "exploiting" the draw method as a loop.

Ohh, I see. Well done, +1 (in about an hour - can't vote right now. :c)

Prolog (SWI), 72 bytes
Formating to user_output stops working when using sleep, so I had to save the time to a variable and print it explicitly.
Code:
p:-repeat,get_time(T),format_time(atom(X),'%T',T),write(X),sleep(1),1=0.

Explained:
p:-repeat,                      % loop until success
   get_time(T),                 % Get current timestamp
   format_time(atom(X),'%T',T), % Format timestamp as HH:mm:ss
   write(X),                    % Print time
   sleep(1),                    % Sleep 1 second
   1=0.                         % Fail and go back to repeat

Hassium, 43 Bytes
func main(){print(time())sleep(1000)main()}

See expanded here

sh (+ top), 7 bytes
Script (Debian8):
top -d1

Script (NetBSD7):
top -s1

(both without trailing newline)
Output (1st line only, Debian8):
top - 16:25:15 up 3 days,  8:56,  4 users,  load average: 0,97, 1,10, 1,03

Output (1st line only, NetBSD7, different time zone):
load averages:  1.46,  1.28,  1.22; (SPACES) up 44+08:52:28 (SPACES) 15:22:06

The amount of spaces depends on the terminal width.

C, 74 73 bytes
#include<time.h>
main(){for(time_t t;!sleep(1);time(&t))puts(ctime(&t));}

The code can work even without #include <stdio.h> and #include <unistd.h>, see live code example on ideone.com -- note: the sleep is zero there, to generate some output before the time limit has been exceeded.
The first output line should be ignored ("Extra output doesn't really matter, as long as the program at some point continuously outputs time.").

66 bytes: #include<time.h> t;main(){for(;time(&t);sleep(1))puts(ctime(&t));}

Python 3, 48 bytes
from time import*
while[sleep(1)]:print(ctime())

It is a @Mego's Python 2 solution tweaked to work on Python 3.
Here's Jupyter notebook to see the results and try it.

PureBasic, 64 59 bytes
Not much to say, infinite loop, output time to the debug window with a 1000 millisecond delay
a:
Debug FormatDate("%hh:%ii:%ss",Date())
Delay(1e3)
Goto a

ForEver? Seems legit.

the comment on ForEver made me think about infinite loops and all it boils down to is a Goto loop and it saved me 5 bytes :D

Goto? Even better. ;D Can you put the a: directly before Debug... to remove the newline? Or is that a different version of BASIC?

nope, labels for goto's have to be the only statement on the line for it to work. The colon is generally used for stringing multiple commands on one line, so you could have "Debug FormatDate("%hh:%ii:%ss",Date()):Delay(1e3):Goto a"

QBasic, 16 bytes
Shamelessly stole (and imporoved upon) Mauris' design:
CLS:?TIME$:RUN

Previous version: 24 bytes
EDIT: Only just saw that I don't have to SLEEP 1 if I continuously clear the screen and print the time. That's 4 bytes shorter:
DO:CLS:PRINT TIME$:LOOP

Previous entry (28 bytes)
DO:PRINT TIME$:SLEEP 1:LOOP

Nothing fancy, not too shabby.

Mouse-2002, 84 bytes
Mouse is cool, but it's not the golfiest stack based language on the planet (well, not until I update it in a reimplementation -- then it will be better.)
0&FIX 2&WIDTH "!"(&HOUR &!DEC ":"&MIN &!DEC ":"&SEC &!DEC 8!'8!'8!'8!'8!'8!'8!'8!')$

The 8!' prints the character with ASCII code 8, or backspace. You probably need an ANSI terminal to run this; it updates in place by backspacing over itself and writing the new time once per second.
sample use:
$ mouse clock2.mou

19:47:34

Based on this, but golfed.

Python 2, 85 bytes
import time;while 1:print __import__('datetime').datetime.now().time();time.sleep(1)

import time;time.sleep() has 2 fewer bytes than __import__('time').sleep(), while import datetime;datetime.datetime.now() has 2 more bytes than __import__('datetime').datetime.now().

Vitsy + bash, 13 11 bytes
This language feature was made after this question, but not for this question.
&ltw1Z,'date'
<           Loop leftwards in the code.
            Rest of code is written in reverse for "readability".
 'etad'     Push 'date' to the stack.
       ,    Do the shell script for what's in the stack.
        Z   Output the result.
         1w Wait a second.

Or, using eval...
<w1Zn"Date()"
<             Go leftwards through this code in order to loop infinitely.

              Rest of code is written in reverse for "readability".

 ")(etaD"     Push "Date()" to the stack.
         n    Eval through JS.
          Z   Output everything.
           1w Delay for one second.

Try it online!

sleep 1 based answer break rule 5: you must guarantee one, and only one, output of time per second... anymore!!

@F.Hauri Please read rule 6 - also, stop spamming me.

Emacs Lisp, 83 bytes
(run-with-timer 1 1(lambda()(message(format-time-string"%H:%M:%S"(current-time)))))

bash, 35 bytes
Just for kicks
yes|mapfile -tc1 -C'date;sleep 1 #'

Also 35,
x='x[`date>&2;sleep 1`${!x}]'<${!x}

I think it's unlikely there's anything shorter than exec $0.

Are you sure the first solution is not als0 35 characters long? I have to put a space in front of the # otherwise sleep cries for invalid syntax.

@manatwork Yes. Looks like I tested a version that did ;: before I changed it to # and made a typo. The interactive_comments shopt sometimes screws with me too. Good catch.

Groovy, 40 37 bytes
Not very golfable :(, thanks to FlagAsSpam for for(;;) :)
for(;;){print(new Date());sleep 1000}

for(;;){...? And what about 1e3 for 1000? You can use print instead of println.

Thanks, I was pretty sure it needs to be a new line every time.

Lua, 56 bytes
Lua is pretty hard to golf...
v=1
while 1 do v=os.date'%c' l=v~=l and print(v)or v end

There are few online interpreters that allow infinite loops; one of the few I've found is this one. This repeatedly converts the current system time to a date-time string and outputs that string when it's different from the last.
Ungolfed:
current = 1
while 1 do
    current = os.date('%c')
    last = current ~= last and print(current) or current
end

+1 for golfing in lua :). You can golf it down to 51 bytes by using a label+goto to do an infinite loop, and suppress some spaces : v=1::a::v=os.date'%c'l=v~=l and print(v)or v goto a

MATL, 11 bytes
`Z'0XOD1Y.T

Try it here.
Explanation
`         % do...while loop
  Z'      %   get current date and time
  0XO     %   string representation of date and time, with format 'dd-mmm-yyyy HH:MM:SS'
  D       %   convert to string and display
  1Y.     %   pause for 1 second
  T       %   push "true" value as loop condition to create infinite loop
          % implicitly end loop

Why non competing?

@SocraticPhoenix Becuase the language is newer than the challenge. I've clarified that in the answer

unless I'm mistaken, this is a catalog challenge, meaning you can post languages that are newer...

Yep, "Since this is a catalog, languages created after this challenge are allowed to compete"

@SocraticPhoenix Oh, thanks! I hadn't noticed. I'll remove the note then

F#, 101 98 bytes
open System;while 1=1 do(DateTime.Now.ToString"HH:MM:ss"|>printfn"%s";Threading.Thread.Sleep 1000)

Pretty straightforward: print the current time in the correct format, wait a second, then repeat. Forever.
Credit to @VoteToClose and @RikerW for the help.

Few questions: is for(;;) valid syntax? Can you use DateTime.Now.ToString"HH:MM:ss"? Do you need the whitespace in ; Threading.Thread.Sleep

Few answers! From what I've seen, for(;;) sadly isn't valid F#. The other two suggestions are dead on, however - I can't believe I've overlooked those. Thanks! =)

while (truthy value)?

@RikerW Right, that's another good one. I usually write infinite loops as recursive functions, so I hadn't thought about it. Thanks! =)

Not just plain 1?

@RikerW Because of F#'s strong typing, that doesn't work. The only truthy value is true, of type bool. Anything else won't type-check - if I put in while 1 do, I get this error: stdin(1,7): error FS0001: This expression was expected to have type bool but here has type int.

Okay, just checking. So 1=1 is the shortest possible.

Does Threading.Thread.Sleep 1e3 work?

@VoteToClose I didn't know if 1e3 was valid F#, so I tried it just now. Turns out that it works! Well, kinda - it evaluates to 1000.0, but Sleep doesn't have an overload that takes a float. Still, I learned something new! =)

Perl 6, 34 30 bytes
Perl 6 is looooong, but I like it.
Yes, all the whitespace is needed.
sleep 1 while say DateTime.now

Hooray for postfix syntax!

Rebol, 25 bytes
forever[print now wait 1]

This prints day & time (24 hour HH:MM:SS).  For an extra 5 bytes you can make it print just the time: forever[print now/time wait 1]

Lol, is it said that I read this like house music? Print, now wait 1. Print, now wait 1.

Batch (Windows), 21 bytes
t.bat
echo %time%
timeout 1
t

Shows the time, delays for 1 second, then recursively calls itself. This is run as t.bat in the same directory.

I count 43, but you also need to count the name. If you rename the file to A, then you can bring the score down to 38.

Welcome to PPCG!

Pascal, 144 B
This program requires a processor complying to the ISO standard 10206 “Extended Pascal”, e. g. the GNU Pascal Compiler (GPC).
It’s doing a busy wait until the time changes.
The second line of the entire output will probably be printed in significantly less than a 1 second interval.
program t(output);var t:timeStamp;s:string(8);begin s:='';repeat getTimeStamp(t);if s<>time(t)then begin s:=time(t);writeLn(s)end until 6=9 end.

The code does not check timeStamp.timeValid, so on a system without a clock this program will print just a single line representing midnight, getTimeStamp’s default value if timeStamp.timeValid is set to false.
The return value of time is implementation-defined.
It may be in an AM/PM format, military time, or something else.
Thus it’s not guaranteed that the challenge’s specifications are met.
At any rate, the GPC’s implementation returns something in the style of 22:00:42.
This fits into a string(8).
A different Pascal implementation may require more characters in order to detect a change in time.
Also, if you don’t mind a preceding empty line, you can use this 134 B program:
program t(output);var x:timeStamp;s:string(8);begin s:='';repeat getTimeStamp(x);if s<>time(x)then writeLn(s);s:=time(x)until 6=9 end.

TI-BASIC, 29 bytes
While 1
Output(1,1,getTimeStr(24)+":
Output(1,7,sum(getTime,3
End

TI-BASIC has a built-in getTimeStr, but it doesn't display seconds! How to fix this? Just display the seconds over the empty space after the minutes. (It would be much easier if there were a way to convert numbers to strings.)
Outputs in 24-hour mode.

I count 65 bytes there... how do you get 29?

@Fozzedout TI-BASIC uses a tokenized encoding of one or two bytes per token.

C#, 129 125 bytes
using System;using System.Threading;class P{static void Main(){for(;;){Console.WriteLine(DateTime.Now);Thread.Sleep(1000);}}}

Ungolfed:
using System;
using System.Threading;

class Program
{
    static void Main()
    {
        for (;;)
        {
            Console.WriteLine(DateTime.Now);
            Thread.Sleep(1000);
        }
    }
}

I don't know C# but can't you do for(;;) instead of while(true)?

Updated, thanks @muddyfish

Can you do 1e3 over 1000? (I don't know C# either.)

Thread.Sleep accepts either int or TimeSpan.  You can do Thread.Sleep((int)1e3) but that's longer unfortunately.

PHP, 24 bytes
for(;;)echo date("\rr");

\r clears the current line before printing the date/time using the r flag. Therefor it doesn't have to wait or delay the output for a second. Also the cursor is always positioned behind the output, which would be different for r\r where it would overlay the first character of the output.

"You must output the current time continuously (until cancelled by an interrupt), once every second" ... not every millisecond.

@yeti See the OP's current last comment on the question: "If it's only one visible output per second, then that should be fine.".

Changing the rules in comments is not a good idea... he better should update the original text instead... :-(

Shouldn't PHP code always include the short open tag or add bytes for using the -r switch? Otherwise, this script will just print the source code.

@YetiCGN It's accepted throughout this site to not include the PHP opening tag in the byte count. Here's a discussion about it that also links to a few related posts.

Good to know, I will be 2 bytes better on most challenges from now on!

AppleScript, 112 93 45 bytes
repeat
delay 1
log(do shell script"date")
end
This repeats in a loop, does the bash script date, gets its returned string, and outputs it to the Messages pane. Why I didn't do this at first, I'll never know.
Using Node:
Let's have a odd useless combination, shall we?
This was inspired by my Vitsy answer, which also uses JS to get the date.
tell app"System Events"
tell app"Terminal"to activate
keystroke"node
"
repeat
delay 1
keystroke"Date()
"
end
end
What I do here is I tell the System Events application to get terminal as the front window, then enter node with the terminal by telling System Events to simulate keystrokes of n, o, d, e, followed by a newline. It then enters a loop in which it delays for a second, tells node to do Date() by the same method, then going back to the top of the loop.
This answer is mostly to demonstrate the odd things that Applescript allows you to do.

sleep 1 based answer break rule 5: you must guarantee one, and only one, output of time per second!!

@F.Hauri I've seen you posting this on most things in this question, but read rule 6 carefully as to why this is not always the case. ;)

Unix Shell + procps, 12 bytes
procps is a package providing CLI utils for browsing procfs, a virtual filesystem generated by the kernel to provide information about processes.
The watch command reruns a command every on an interval, that defaults to 2. Set it to 1, and run ., and voilá, watch suppresses stderr.
watch -n1 .

The time is in the upper right.

incidentally, watch is very handy for spying on the progress of a lengthy dd or cp.

I think you meant : (a colon). A single . is shorthand for source. source without any arguments should complain about missing arguments. Also, I think ‑‑precise/‑p would be adequate here. “Incidentally” dd has status=progress so a periodic pkill ‑USR1 '^dd$' isn’t necessary. I’m not sure how you combine watch and cp.

Jelly, 8 bytes
7ŒTṄœS1ß

Try it online!
How it works
7ŒTṄœS1ß  Main link. No arguments.

7         Yield 7 (or 111 in binary).
 ŒT       Time; return hours, minutes and seconds (lower three bits).
   Ṅ      Print, followed by a linefeed.
      1   Yield 1.
    œS    Sleep for 1 second, return the time.
       ß  Call the main link recursively.

Factor, 43 bytes
[ [ t ] [ now "%c" strftime print ] while ]

An anoymous function. Use it like ~quotation~ call.

I thought it was supposed to output the time once per second. This outputs as often as possible.

Pylongolf, 11 bytes
>}~.1000w.<

}~ pushes the current time into the stack and then prints it.
. the dots reset the stack.
1000w pushes 1000 into the stack and then waits that time.

This not seems to output the time continuously, once per second.

Fixed the problem!

Python, 53 bytes
This one prints the date and year as well as the time, so I don't know if it's allowed.
import time
while 1:print(time.ctime());time.sleep(1)

EDIT: J.F.Sebastian made a shorter one.

Tellurium, 8 bytes
[i|t^¨]

The code that is after the | and before the ] is run forever (i).
It changes the value of the current cell to the current time (t), outputs the current cell's value using ^, and waits for 1 second (¨) before continuing.

"Since this is a catalog, languages created after this challenge are allowed to compete." Hey, what are you waiting for?

@zyabin101 Fixed that! Thanks :)

Scratch, 15 bytes

(scoring used)
This script is essentially what it says.  It joins the hour value, then a colon, then the minute value, then a colon, then the second value.  The downside is that Scratch reads 01 as 1, so it might not be valid without making the script longer.

Hello, and welcome to PPCG! According to Meta, that is 15 bytes, one for each block, and one for each character of text.

Thanks for pointing that out, I linked the meta post in question for clarity.

Mathematica, 27 21 bytes
With 2 bytes saved thanks to Xavier.
Dynamic@{Now,Clock[]}

25 bytes with Dynamic@{Now,Clock@{1,2}}, and 21 with: Dynamic@{Now,Clock[]}.

Lua, 51 Bytes
Since the previous owner of this answer in 56 Bytes doesn't update anymore when suggested improvments, here's a 51 Bytes solution heavily based on his:
v=1::a::v=os.date'%c'l=v~=l and print(v)or v goto a

Nim, 55 54 bytes
import os,times
while on:echo getClockStr();sleep 1000

on is an alias for true. Prints the result of the times module's getClockStr proc, which formats the time nicely in 24-hour format, then uses the os module's sleep proc to sleep a second.

C#, 102 bytes
using System;class P{static void Main(){for(var s="";;)if(s!=(s=DateTime.Now+"\n"))Console.Write(s);}}

An infinite loop that prints whenever the time changes. Default precision for C# date printing is to the second, so that works out nicely.

Fourier, 46 20 bytes
This is a fairly simple program which loops infinitely, using the newly added date functions, delay function and clear screen function.
This does not show a leading zero on the minutes or the seconds value when either are less than ten.
(@2do58a1do58a0do1;)

Try it online!
Note: this program will not work on http://fourier.tryitonline.net due to differences in the way interpreters work.

Clojure, 140 bytes
(loop[l 0](let[c(System/nanoTime)](recur(if(>=(- c l)1e3)(do(println(.format(java.text.SimpleDateFormat."h:m:s a")(java.util.Date.)))c)l))))

Full program. Loops continually; keeping track of the last time it printed. If 1000ms have passed, it prints, then resets the time.
Java interop really bloats this up, but not much can be done about that.
Ungolfed:
(defn current-time []
  (loop [last-ns 0]
    (let [current-time (System/nanoTime)]
      (recur
        (if (>= (- current-time last-ns) 1e3)
          (do
            (println (.format (java.text.SimpleDateFormat. "h:m:s a") (java.util.Date.)))
            current-time)
          last-ns)))))

Using sleep (which seems to be of questionable validity), 100 bytes
(while[](Thread/sleep 1e3)(println(.format(java.text.SimpleDateFormat."h:m:s a")(java.util.Date.))))

Ungolfed:
(defn current-time []
  (while []
    (Thread/sleep 1e3)
    (println (.format (java.text.SimpleDateFormat. "h:m:s a") (java.util.Date.)))))

tcl, 67
while 1 {puts [clock format [clock seconds] -format %T];after 1000}

can be tested on: http://www.tutorialspoint.com/execute_tcl_online.php?PID=0Bw_CjBb95KQMUkViT2lXWDlLYlE

QBIC, 6 bytes (nc)
{_C?_d

QBIC is newer than this challenge. In fact, this challenge is the reason QBIC has a _C command (for CLS - Clear the screen) and the _d/_D commands (for TIME$ and DATE$ resp).
Explanation
{        Start infinite loop
 _C      Clear screen
   ?     PRINT
    _d   TIME$ (which holds the system's time in QBasic)

MOO, 46 bytes
while(!suspend(!player:tell(ctime())))endwhile

Sleeps for one second between outputs, regardless of execution time (and it's impossible to know sub-second timings anyway

Factor, 29 bytes
[ now hh:mm:ss nl ] 1e9 every

Normally you'd give every a duration for more readability: [ ... ] 1 seconds every but if you just give it a number, it'll interpret it as nanoseconds.

PHP, 36 34 bytes
a:echo'
'.date(r);sleep(1);goto a;

The line break can be \n but it's nicer to convert the script to the old Macintosh line format and make it \r, then the time is neatly updated on the same line.
Updates:

Removed short open tag as per this meta answer

for(;;sleep(1))... saves three bytes. echo date("\nr"); is not shorter, but looks cleaner imo.

05AB1E, 13 bytes
[žažbžc)':ý,w

Should work, but I don't have Python 3, so I can't test.

Elixir, 95 bytes
def f, do: 1000|>Stream.interval|>Enum.each(&(&1&&DateTime.utc_now|>DateTime.to_time|>IO.puts))

*><>, 16 bytes
'::'hnomnosnaoaS

000webhostapp interpreter.
Note: it sometimes skips a second (e.g. 12:34:6 → 12:34:8), because you can't wait exactly a second with total accuracy. Unfortunately there isn't any way to fix this.

VBA, 50 Bytes
Anonymous VBE immediate window function that takes no input and outputs to the VBE immdiate window
Do:DoEvents:?Now:Application.Wait 1/864E2+Now:Loop

Phooey, 39 bytes
[1@_1~t/1000@/60@/60%24[_1%60$i":"&]#1]

Try it online!
It's not pretty. It prints the time followed by another colon, with no newline in between.
In order to see the output you probably need to use stdbuf -i0 -o0 -e0 to set it to unbuffered, as I don't print newlines. The output is always in UTC time.
Explanation:
[1            // While tape value is not 1 (it will either be 0 the first time or -1 the second)
  @_1         // Push sentinel of negative 1
  ~t          // tape = millis since epoch
  /1000       // Divide tape by 1000 to get seconds
  @           // Push tape value to save the seconds
  /60         // Divide by 60 to get minutes
  @           // Push tape to save minutes
  /60         // Divide by 60 to get hours
  %24         // Modulo by 24 to hour of the day
              // Stack: -1, seconds, minutes
              // Tape: hours
  [_1         // While tape is not -1 sentinel
     %60      //   modulo tape by 60 (redundant for hours)
     $i       //   print as number
     ":"      //   print separator
     &        //   Pop to tape
  ]           // Loop if tape == tape (nop condition)
  #1          // sleep 1 second
]             // End loop

Note: 2:58 PM EST = 18:58 UTC
Excuse the low quality, the attachment feature has a stupid requirement of 2 MB which is not easy for GIFs to reach...

x86-16 DOS .COM executable (FreeDOS 1.3), 40 bytes
00000000: b4 2c cd 21 38 f3 74 f8 88 f3 88 e8 e8 07 00 91  .,.!8.t.........
00000010: e8 03 00 88 d8 56 d4 0a 05 30 30 86 c4 cd 29 88  .....V...00...).
00000020: e0 cd 29 b0 3a cd 29 c3                          ..).:.).

Assembly source code:
    ; NASM syntax
    [org 0x100]
start:
    ; Note: The first second may be a little off due to synchronizing to the time
.loop:
    ; Int 21:2C: get time
    ; Return:
    ;    CH = hour
    ;    CL = minute
    ;    DH = second
    ;    DL = 1/100 seconds
    mov   ah, 0x2C
    int   0x21
    ; If seconds is the same as before, try again.
    cmp   bl, dh
    jz    .loop
.loop.end:
    ; Save last seconds
    mov   bl, dh
    ; Print hours
    mov   al, ch
    call  print
    ; Print minutes
    ; mov al, cl
    xchg  ax, cx
    call  print
    ; print seconds
    mov al, bl
    ; Assume SI = 0x0100, push that as a return address
    ; and fall through to loop
    push  si

    ; Converts AL to 2 digit ASCII and prints, followed by :
print:
    ; AL = AL % 10
    ; AH = AL / 10
    aam   10
    ; Convert to ASCII
    add   ax, '00' ; 0x3030
    ; Byteswap to get tens in AL, save ones in AH
    xchg  al, ah
    ; Print tens with int 29h
    int   0x29
    ; Then ones
    mov   al, ah
    int   0x29
    ; Then colon
    mov   al, ':'
    int   0x29
    ; Return from function
    ret

Like my other answer it isn't pretty but it does the job. It prints a : between each time.
Output on FreeDOS 1.3 on QEMU

HP‑41C series, 4 Bytes
This requires an HP‑41CX or an HP‑41C/CV with a time module plugged in.
CLKT    2 Bytes  select time-only display for CLOCK (default)
CLOCK   2 Bytes  displays clock, refreshes every second

NB:
CLOCK is effectively OFF if the system flag 49 (“low battery”) is set.


text:
Implement LaTeX accent macros
Introduction
The LaTeX typesetting system uses macros for defining accents.
For example, the letter ê is produced by \hat{e}.
In this challenge, your task is to implement an ASCII version of this functionality.
Input
Your input is a non-empty string of printable ASCII characters.
It will not contain newlines.
Output
Your output is a string consisting of two lines.
The first line contains accents, and the second line the characters they belong to.
It is obtained from the input as follows (A denotes an arbitrary character):

Every \bar{A} is replaced by A with _ on top of it.
Every \dot{A} is replaced by A with . on top of it.
Every \hat{A} is replaced by A with ^ on top of it.
For a -10% bonus: every \tilde{A} is replaced by A with ~ on top of it.
All other characters have a space above them.

For example, the input
Je suis pr\hat{e}t.

results in the output
          ^
Je suis pret.

Rules and scoring
You can assume that the characters \{} only occur in the macros \bar{}, \dot{} and \hat{} (and \tilde{} if you go for the bonus).
All macro arguments are exact one character long, so \dot{foo} and \dot{} will not occur in the input.
The output can be a newline-separated string, or a list/pair of two strings.
Any amount of trailing and preceding whitespace is allowed, as long as the accents are in the correct places.
In particular, if there are no accents, the output can be a single string.
You can write a full program or a function.
The lowest byte count (after bonuses) wins, and standard loopholes are disallowed.
Test cases
Without bonus:
Input:
No accents.
Output:

No accents.
Input:
Ch\hat{a}teau
Output:
  ^
Chateau
Input:
Som\bar{e} \dot{a}cc\hat{e}nts.
Output:
   _ .  ^
Some accents.
Input:
dot hat\dot{h}a\hat{t}\hat{ }x\bar{x}dot
Output:
       . ^^ _
dot hathat xxdot
Input:
\hat{g}Hmi\hat{|}Su5Y(\dot{G}"\bar{$}id4\hat{j}gB\dot{n}#6AX'c\dot{[}\hat{)} 6\hat{[}T~_sR\hat{&}CEB
Output:
^   ^     . _   ^  .      .^  ^     ^
gHmi|Su5Y(G"$id4jgBn#6AX'c[) 6[T~_sR&CEB

With bonus:
Input:
Ma\tilde{n}ana
Output:
  ~
Manana
Input:
\dot{L}Vz\dot{[}|M.\bar{#}0\hat{u}U^y!"\tilde{I} K.\bar{"}\hat{m}dT\tilde{$}F\bar{;}59$,/5\bar{'}K\tilde{v}R \tilde{E}X`
Output:
.  .   _ ^     ~   _^  ~ _      _ ~  ~
LVz[|M.#0uU^y!"I K."mdT$F;59$,/5'KvR EX`

I started to prototype this in Go but then I realised how much simpler Python would be...

Can we assume that each markup entry contains only one char? Or, in other words, is \bar{foo} a valid input?

@PeterTaylor Yes, every macro argument is exactly one character long. I'll clarify that.

Pyth, 51 46 45 43 41 40 bytes
I remove the curly braces and split at \, just like Reto Koradi's CJam answer does. The codes bar, dot and hat are recognized simply by the last decimal digit of the character code of the first character, modulo 3. I just add barf (RIP) """" to the first part and remove it in the end to save the code for handling the first part specially.
jtMsMCm,+@".^_"eChd*\ -ld4>d3c-+*4Nz`H\\

Try it online. Test suite.

"Then I just add barf..." +1

Julia, 204 184 bytes * 0.9 = 165.6
x->(r=r"\\(\w)\w+{(\w)}";t=[" "^endof(x)...];while ismatch(r,x) m=match(r,x);(a,b)=m.captures;t[m.offsets[1]-1]=a=="b"?'_':a=="d"?'.':a=="h"?'^':'~';x=replace(x,r,b,1)end;(join(t),x))

This is an anonymous function that accepts a string and returns a tuple of strings corresponding to the top and bottom lines. The top line will have trailing whitespace. To call the function, give it a name, e.g. f=x->...
Ungolfed:
function f(x::AbstractString)
    # Store a regular expression that will match the LaTeX macro call
    # with capture groups for the first letter of the control sequence
    # and the character being accented
    r = r"\\(\w)\w+{(\w)}"

    # Create a vector of spaces by splatting a string constructed with
    # repetition
    # Note that if there is anything to replace, this will be longer
    # than needed, resulting in trailing whitespace
    t = [" "^endof(x)...]

    while ismatch(r, x)
        # Store the RegexMatch object
        m = match(r, x)

        # Extract the captures
        a, b = m.captures

        # Extract the offset of the first capture
        o = m.captures[1]

        # Replace the corresponding element of t with the accent
        t[o-1] = a == "b" ? '_' : a == "d" ? '.' : a == "h" ? '^' : '~'

        # Replace this match in the original string
        x = replace(x, r, b, 1)
    end

    # Return the top and bottom lines as a tuple
    return (join(t), x)
end

CJam, 53 bytes
Sl+'\/(_,S*\@{(i2/49-"_. ^"=\3>'}-_,(S*@\+@@+@@+\}/N\

Try it online
Explanation:
S       Leading space, to avoid special case for accent at start.
l+      Get input, and append it to leading space.
'\/     Split at '\.
(       Split off first sub-string, which does not start with an accent.
_,      Get length of first sub-string.
S*      String of spaces with the same length.
\       Swap the two. First parts of both output lines are now on stack.
@       Rotate list of remaining sub-strings to top.
{       Loop over sub-strings.
  (       Pop first character. This is 'b, 'd, or 'h, and determines accent.
  i       Convert to integer.
  2/      Divide by two.
  49-     Subtract 49. This will result in 0, 1, or 4 for the different accents.
  "_. ^"  Lookup string for the accents.
  =       Get the correct accent.
  \       Swap string to top.
  3>      Remove the first 3 characters, which is the rest of the accent string
          and the '{.
  '}-     Remove the '}. All the macro stuff is removed now.
  _,(     Get the length, and subtract 1. This is the number of spaces for the first line.
  S*      Produce the spaces needed for the first line.
  @\+     Bring accent and spaces to top, and concatenate them.
  @@+     Get previous second line and new sub-string without formatting to top,
          and concatenate them.
  @@+     Get previous first line and new accent and spacing to top,
          and concatenate them.
  \       Swap the two lines to get them back in first/second order.
}/      End loop over sub-strings.
N\      Put newline between first and second line.

Haskell, 156 * 0.9 = 140.4 bytes
g('\\':a:r)=(q,l):g s where q|a=='b'='_'|a=='d'='.'|a=='h'='^'|a=='t'='~';(_,_:l:_:s)=span(<'{')r
g(a:b)=(' ',a):g b
g""=[('\n','\n')]
f=uncurry(++).unzip.g

Usage example:
*Main> putStr $ f "\\dot{L}Vz\\dot{[}|M.\\bar{#}0\\hat{u}U^y!\"\\tilde{I} K.\\bar{\"}\\hat{m}dT\\tilde{$}F\\bar{;}59$,/5\\bar{'}K\\tilde{v}R \\tilde{E}X`"
.  .   _ ^     ~   _^  ~ _      _ ~  ~
LVz[|M.#0uU^y!"I K."mdT$F;59$,/5'KvR EX`

How it works: go through the input string character by character and build a list of pairs of characters, the left for the upper output string, the right for the lower output string. If a \ is found, take the appropriate accent, else a space for the left element. Finally transform the list of pairs into a single string.

Python 3, 203 bytes
Without bonus:
l=list(input())
b=list(" "*len(l))
try:
 while 1:s=l.index("\\");t=l[s+1];del l[s+6];del l[s:s+5];b[s] = "b"==t and "_" or "d"==t and "." or "h"==t and "^" or "*";
except:print("".join(b)+"\n"+"".join(l));

I really hope there is a shorter version.

It's always nice to see the progression of byte count. c: I suggest leaving the old byte count up, then surrounding it in <s></s>, then typing the new byte count so we can see the steps towards concision.

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

sort: votes


text:
Paradox of time travel
A man has two devices.

A time machine - He can control this machine by thinking. It allows him to travel from any point in time to another point in time in the past or future (or even the present point in time) in no time at all. Note that if he travels to the past from B to A, then all normal events (time machines, alternators excluded) from A to B must repeat in the exact same way. Then from point B, he is taken back to point A. Thus, a single time travel creates an infinite loop.
Alternator - Realising this problem, he creates another machine. He notices that, even though all physical events get repeated in a loop, his thoughts may be different. Hence this machine was designed to be controllable by thought as well. The machine can be used at any time to provide an alternate future (but not past) with respect to the time he used it.

Example
I'll explain all the details using a lengthy example.
1000 T+250 250 T+0 500 T-200 100 T-50 125 A 225 T-400 500 A 100 T-200 150 T-25 100 T+100 50 A 25

1000 years pass. It is year 1000 now.
He travels from 1000 to 1250.
250 years pass. It is year 1500 now.
He travels from 1500 to 1500. This has no effect (and can be ignored).
500 years pass. It is now year 2000
He travels from 2000 to 1800.
100 years pass. It is year 1900 now.
He travels from 1900 to 1850.
125 years pass: However, this time, as he is in a loop, things are different. 50 years pass from 1850 to 1900. He loops back to 1850. Another 50 years pass from 1850 to 1900. He loops back again. 25 years pass and it is 1875, thus completing 125 years.
He uses the alternator. Now there exists an alternate future to the year 1875, which he is now in. The past has not changed.
225 years pass. It is now year 2100.
He travels from 2100 to 1700.
500 years pass: 175 years from 1700 to 1875 pass normally. No he encounters the alternator again, which means that now a 3rd future has been created post-1875. 325 years pass normally, making it year 2200.
Using an alternator now has no effect (and can be ignored) since there exists only one future to 2200 which has not yet been defined.
100 years pass. It is now 2300.
He travels from 2300 to 2100.
150 years pass: 100 years from 2100 to 2200 pass normally. A second future gets created from 2200. 50 years pass and it is now year 2250.
He is supposed to go from 2250 to 2225. However, there now exist two 2225s in two different timelines. Hence this leads to a paradox, since we cannot determine which point in time he will reach. (We will not assume that he goes to the more recent timeline) Hence this terminates our simulation.
Anything further 100 T+100 50 A 25 is completely ignored since a paradox has occured and our simulation has stopped running.

Hint: If you are struggling to understand the example, imagine time to be like a path you are digging in the earth. If you are time travelling, you are creating a teleporter. If you are using the alternator, you are digging a new path into the wall of an existing path.
Paradox
Assume A, B and C are three points in time (one after another). A paradox is said to have occurred iff:

you are at a point C, there exists an alternator at a point B, there exists more than one future to point B (and you are in one of them), and you attempt to access any point between B and C via time travel.
you are at a point A, there exists an alternator at a point B, there exists more than one future to point B, and you try to access a point C (after B) via time travel.

Input
A series of events, similar to the example. (Format is flexible.)
Output
A truthy/falsey value, indicating whether a paradox has occured.
Challenge
Shortest code (in bytes) wins.

how flexible is the format?

@GlennRanders-Pehrson Oh, I got what you meant. Edited.

@sysreq Any additional punctuation (whitespace, commas, brackets, etc.) in input allowed. Any character(s) allowed to differentiate between time travel and alternator. Any character(s) allowed to be used instead of + and - (forward/backward travel). Numbers may be in any base (binary, decimal, etc.). Events will be entered in same order only. No actual year numbers will be provided, you must assume start to be zero (or any other integer) and figure out actual year numbers yourself (if you need to).

it would help me if there were several small examples instead of one big one, but i still voted up!

Ruby, 510 460 bytes
p=[0];w=[n=x=0]
i=gets.split.map{|s|
if x!=1
if s[0]=="A"
w<<n
else
if s[0..1]=="T+"
t=n
q=s[2..-1].to_i
if w[-1]==t||(w[-1]>t&&w[-1]<n+q)
w<<w[-1]
n+=q
else
n+=(t<p[-1]&&n+q>p[-1])?q%(p[-1]-n):q
end
elsif s[0..1]=="T-"
t=n
p<<n
n-=s[2..-1].to_i
x=(x==0&&w[-1]>0&&t>w[-1]&&n>w[-1])?1:0
else
t=n
q=s.to_i
if w[-1]==t||(w[-1]>t&&w[-1]<n+q)
w<<w[-1]
n+=q
else
n+=(t<p[-1]&&n+q>p[-1])?q%(p[-1]-n):q
end
end
end
else
break
end}
p x

Input
As per example
Output
0 = No Paradox, 1 = Paradox
Sample
The sample input provided: 1000 T+250 250 T+0 500 T-200 100 T-50 125 A 225 T-400 500 A 100 T-200 150 T-25 100 T+100 50 A 25
returns 1, indicating a paradox occurred.
Notes
This is not only the first codegolf exercise I attempt, but it is also the first Ruby program I have written. Hence, it could probably be even shorter.
Brief Explanation
p: Infinite loops
w: Alternate timelines
n: Now (regardless of timeline)
x: Paradox

Infinite loops will only occur while traveling forward in time. I am happy for any feedback - especially if it is pointing out a better way to solve this.

Can you provide some sample input/output data?

@VoteToClose - Apart from the data provided in the question, I can create more sample data, if necessary?

Oh, gosh, I missed that "Sample" part entirely. I'm an idiot. +1

@VoteToClose Not a problem :)

All of the thens are unnecessary and can be removed. Also, you should use {...} instead of do...end to save more chars. map saves a byte over each, and split splits on whitespace by default. The first four lines of initialization can be shortened to p=[];w=[n=x=0].

@Doorknob Many thanks for your suggestions! +1

I know it's been 3.5 years (lol..), but I think you can golf your current code to 288 bytes (not entirely sure, since I don't know Ruby too well). However, your current code doesn't account for paradoxes with forward time-traveling (the second bullet-point in OP's description).

Java 10, 498 485 478 bytes
import java.util.*;s->{var a=new Stack<Long>();var m=new TreeMap<Long,Long>();long p=0,c=0,t,v,k;o:for(var S:s.split(" "))if((t=S.charAt(0))>65){var b=S.charAt(1)>44;v=new Long(S.substring(2));for(var A:a)p=A>c+(b?-v:v)|m.size()<1?p:1;if(v>0)m.put(c,b?c-v:c+v);c+=b?-v:v;}else if(t>64){a.add(c);m.clear();}else{t=new Long(S);e:for(var e:m.entrySet())if((k=e.getKey())>=c){for(v=c;v<=c+t;)if(a.contains(v++))break e;c=(v=e.getValue())+(c+t-v)%(k-v);continue o;}c+=t;}return p>0;}

Input is (for now) in the same format as in the challenge description.
-13 bytes thanks to @BenjaminUrquhart.
-7 bytes thanks to @ceilingcat.
Try it online or try it online with added debug-lines.
Explanation:
import java.util.*;            // Required import for the List and TreeMap
s->{                           // Method with String parameter and boolean return-type
  var a=new Stack<Long>();     //  Create a List for the alternators
  var m=new TreeMap<Long,Long>();
                               //  Create a sorted Map for the time-travels
  long p=0,                    //  Paradox-flag, initially 0
       c=0,                    //  Current year, initially 0
       t,v,k;                  //  Temp-values, uninitialized
  o:for(var S:s.split(" "))    //  Loop over the input substrings split by space:
    if((t=S.charAt(0))>65){    //   If the first character is a 'T':
      var b=S.charAt(1)>44;    //    Check if the second character is a '-'
      v=new Long(S.substring(2));
                               //    Convert the String-value to a number
      for(long A:a)            //    Loop over the alternators
        p=A>                   //     If an alternator is larger than:
            c+                 //      The current year, plus
              (b?              //      If we travel backwards in time:
                 -v            //       Subtract the value
                :              //      Else (we travel forward in time):
                 v)            //       Add the value
          |m.size()<1?         //     Or if no previous time-travels occurred:
           p                   //      Leave the paradox-flag the same
          :                    //     Else:
           1;                  //      Set the paradox-flag to 1
      if(v>0)                  //     If the value is not 0 (edge-case for "T+0")
        m.put(c,b?c-v:c+v);    //      Add the from-to time-travel to the Map
      c+=b?-v:v;}              //     Increase/decrease the year accordingly
    else if(t>64){             //   Else-if the character is an 'A':
      a.add(c);                //    Add the current year to the alternators-list
      m.clear();}              //    And empty the time-travel Map
    else{                      //   Else (it's a number)
      t=new Long(S);           //    Convert the String to a number
      e:for(var e:m.entrySet())//    Loop over the time-travels:
        if((k=e.getKey())      //     If the time-travel starting point is
                         >=c){ //     larger than or equal to the current year
          for(v=c;v<=c+t;)     //      Loop from the current year to the year+number:
            if(a.contains(v++))//       If the alternator-list contains any of these years
              break e;         //        Stop the time-travel loop
          c=                   //      Set the current year to:
             (v=e.getValue())  //       The time-travel destination
             +                 //       Plus:
              (c+t             //        The current year plus the number
                  -v)          //        minus the time-travel destination
                     %(k-v);   //        Modulo the time-travel from-to distance
          continue o;}         //      And then continue the outer input-loop
      c+=t;}                   //    Increase the current year by the number
  return p>0;}                 //  Return whether the paradox-flag is 1

Why not use Long?

@BenjaminUrquhart Good question.. Initially my List and Map were raw-typed, so int was shorter, but that gave errors with the map-Entry keyvalue-pairs. Didn't think about changing everything to Long after that.. Thanks for -13!

05AB1E, 93 92 86 82 bytes
ðU0V#vyAQiYˆðUëy.ïiYy+DX˜såàiXD€нY@Ïн©θ-®¥OÄ%®θY-YOVëVëYy¦+©¯@àXðÊ˜à*i1q}XY®Ÿª{U®V

Input is in the same format as in the challenge description, except that alternator A is abcdefghijklmnopqrstuvwxyz instead to save a byte.
Outputs 1 if a paradox occurred, or the input itself if not (only 1 is truthy in 05AB1E, everything else is falsey).
Loosely based on my Java 10 answer.
Try it online.
Or try it online with added debug-lines (TODO: Create proper test suite with all test cases at once..):
- Test case with backward time-travel paradox: Try it online.
- Test case with forward time-travel paradox: Try it online.
- Test case without time-travel paradox: Try it online.
Explanation:
ðU                         # Set variable `X` (time-travels) to a space character " "
0V                         # Set variable `Y` (current year) to 0
#                          # Split the (implicit) input by spaces
 v                         # And loop over each event `y`:
  yAQi                     #  If the current event `y` is an alternator ("abcdefghijklmnopqrstuvwxyz"):
      Yˆ                   #   Add the current year `Y` to alternators-list `GB`
      ðU                   #   And reset variable `X` to " "
  ëy.ïi                    #  Else-if the current event `y` is an integer:
       Yy+                 #   Calculate the current year `Y` plus the integer `y`
          D                #   Duplicate `Y+y`
           X˜såài          #   If this `Y+y` is within any of the time-travel ranges:
                 X €н      #    Get the starting positions of each time-travel
                     Y@    #    Check for each starting position if the current year `Y` is >= it
                  D    Ï   #    And only leave the time-travel ranges for which this is truthy
                        н  #    Then pop and push the first one
                         © #    Store this time-travel range in variable `r` (without popping)
                 θ         #    Pop and only leave the time-travel destination
                  -        #    Subtract it from the `Y+y` we duplicated
                       %   #    And modulo it with:
                   ®¥OÄ    #     The absolute distance of the time-travel `r`
                 ®θ        #    Then push the time-travel destination again
                   Y-      #    And subtract the current year `Y`
                 YO        #    Then sum these two and the current year `Y` together
                   V       #    And pop and store it as new year `Y`
       ë                   #   Else (`Y+y` is not within any time-travel ranges)
        V                  #    Simply pop and store the duplicated `Y+y` as new year `Y`
  ë                        #  Else (the current event `y` is a time-travel)
    y¦                     #   Remove the leading "T"
   Y  +                    #   And add the value to the current year `Y`
       ©                   #   Store this value in variable `r`
        ¯@à                #   Check if any alternator in list `GB` is >= this value
           XðÊ˜à           #   Check if there are any time-travels
                *i  }      #   And if both are truhy:
                  1        #    Push a 1
                   q       #    Stop the program
                           #    (after which the top of the stack is output implicitly)
    Y®Ÿ                    #   Create a list in the range [current year `Y`, new year `r`]
   X   ª                   #   Append it to the time-travels `X`
        {                  #   And then sort these time-travels
         U                 #   After which we pop and store it as updated `X`
   ®V                      #   And then set `Y` to the new year `r`
                           # (if we haven't reached `q`, the (implicit) input is output instead)

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/