一、c语言打印当前时间毫秒级函数
#include <stdio.h> #include <sys/time.h> int main() { struct timeval tv; gettimeofday(&tv,NULL); printf("Current time in milliseconds: %ld\n",(tv.tv_sec*1000) + (tv.tv_usec/1000)); return 0; }
c语言提供了gettimeofday()函数,可以获取当前时间,精确到微秒级别。获取到时间后可以进行简单运算将其转化为毫秒,非常方便。
二、c++打印当前时间毫秒
#include <iostream> #include <chrono> using namespace std::chrono; int main() { long long milliseconds_since_epoch = duration_cast<milliseconds>(system_clock::now().time_since_epoch()).count(); std::cout << "Current time in milliseconds: " << milliseconds_since_epoch << std::endl; return 0; }
c++提供了<system_clock>和<duration>两个类,可以获取当前时间并转化为毫秒,代码风格也比较简洁易懂。
三、Java打印当前时间到毫秒
import java.time.Instant; public class Main { public static void main(String[] args) { long milliseconds_since_epoch = Instant.now().toEpochMilli(); System.out.println("Current time in milliseconds: " + milliseconds_since_epoch); } }
Java 8提供了新的时间日期API,其中<il>java.time.Instant>/ltil>类可以获取当前时间,并使用toEpochMilli()方法将其转化为毫秒,非常简单。
四、打印日期时间格式化字符串
import java.time.Instant; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] args) { Instant instant = Instant.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"); String datetime = formatter.format(LocalDateTime.ofInstant(instant, ZoneOffset.UTC)); System.out.println(datetime); } }
Java 8还提供了日期时间格式化类<il>java.time.format.DateTimeFormatter>/ltil>,可以将时间按照指定的格式输出,非常方便,可以用来生成日志等需要时间标记的场景。
五、时区设置
import java.time.Instant; import java.time.ZoneId; import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] args) { Instant instant = Instant.now(); ZoneId zone = ZoneId.of("Asia/Shanghai"); ZoneOffset offset = zone.getRules().getOffset(instant); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"); String datetime = formatter.format(LocalDateTime.ofInstant(instant, zone)); System.out.println(datetime); } }
Java 8中<il>java.time.ZoneId>/ltil>和<il>java.time.ZoneOffset>/ltil>类可以方便地设置时区,将时间转化为指定时区下的时间。对于需要将时间转化为多个时区的场景非常有用。
六、总结
Java提供了丰富的时间日期API,可以轻松地获取和处理时间。在实际开发中,我们要根据具体场景选择最适合的API,从而提高代码的可读性和执行效率。