各種開発言語で「現在日付・時刻の取得」まとめ

How To Programming

各種開発言語での現在日付・時刻の取得から表示についてのまとめです。
こうやって比較すると面白いですね。

perl

標準関数 localtimeを使う

#!/usr/bin/perl
my ($sec, $min, $hour, $mday, $month, $year) = localtime;
$month += 1;   # 月は0から始まるので1を加算
$year  += 1900;# 年は1900を引いた値で取得されるので1900を加算
print sprintf("%04d/%02d/%02d %02d:%02d:%02d",$year,$mon,$mday,$hour,$min,$sec);
print ("\n");

表示結果

2019/00/24 01:26:41

php

<?php
print date("Y/m/d H:i:s");
?>

表示結果

2019/00/24 01:26:41

※尚、php.iniのtimezone設定をしないとJSTにならない。
OpenLiteSpeedでは以下の箇所で設定を行う。

python

#!/usr/bin/python3
import datetime
dt_now = datetime.datetime.now()
print(dt_now)

表示結果

2019-09-24 01:29:36.299741

ruby

#!/usr/bin/ruby
require "date"
now = Date.today
puts "今日は#{now.year}年#{now.month}月#{now.day}日"
nowTime = DateTime.now
puts "時刻は#{nowTime.hour}時#{nowTime.minute}分#{nowTime.second}秒"

表示結果

今日は2019年9月24日
時刻は1時54分14秒

java

import java.util.Date;
public class Main {
    public static void main(String[] args) {
        Date date = new Date();
        System.out.println(date.toString());
    }
}

表示結果

Tue Sep 24 01:57:00 JST 2019

go

package main
import "fmt"
import "time"
func main(){
        t := time.Now()
        fmt.Println(t)
}

表示結果

2019-09-24 02:02:18.287742205 +0900 JST m=+0.003000781

c

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

/* main */
int main(void) {
    time_t timer;
    struct tm *local;
    struct tm *utc;
    timer = time(NULL);
    local = localtime(&timer);
    printf("%4d/", local->tm_year + 1900);
    printf("%2d/", local->tm_mon + 1);
    printf("%2d ", local->tm_mday);
    printf("%2d:", local->tm_hour);
    printf("%2d:", local->tm_min);
    printf("%2d", local->tm_sec);
    printf(" %d\n", local->tm_isdst);
    return (0);
}

表示結果

2019/ 9/24  2: 8:41 0

c++

Cと同じでも上位互換のため、動作するが、C++らしい書き方は以下。

#include <sstream>
#include <iomanip>

int main()
{
    time_t t = time(nullptr);
    const tm* lt = localtime(&t);
    std::stringstream s;
    s<<"20";
    s<<lt->tm_year-100;
    s<<"-";
    s<<lt->tm_mon+1;
    s<<"-";
    s<<lt->tm_mday;
    std::string result = s.str();
    std::cout << result << std::endl;
}

表示結果

2019-9-24