long时间类型(格林尼治)转为标准时间


转:http://yxwang0615.iteye.com/blog/1310603

格林尼治时间是从1970年1月1日,00:00:00 GMT到最后修改时间的返回值。

 

 

Java代码   收藏代码
  1. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm", Locale.ENGLISH);  
  2.         String datetime = sdf.format(Long.parseLong("1323842302")*1000);  
  3.         System.out.println(datetime);  

    如果需要24小时制的时间 把hh换为HH即可

 

转载一个工具类:可以将最近时间显示为几秒、分钟、小时:

 

 

Java代码   收藏代码
  1. import java.text.SimpleDateFormat;  
  2. import java.util.Date;  
  3. import java.util.Locale;  
  4.   
  5.   
  6. public class TimeUtil {  
  7.     private  String getTimeStr(Date date) {  
  8.         Date today = new Date();  
  9.         long interval = today.getTime() - date.getTime();  
  10.         today.setHours(23);  
  11.         today.setMinutes(59);  
  12.         today.setSeconds(59);  
  13.         boolean isSameDay = (interval / 86400000) == 0 ? true : false;  
  14.         if (isSameDay) {  
  15.             if (interval < 60 * 1000) {  
  16.                 return (interval / 1000) + "秒前";  
  17.             } else if (interval < 60 * 60 * 1000) {  
  18.                 return (interval / (60 * 1000)) + "分前";  
  19.             } else {  
  20.                 return (interval / (60 * 60 * 1000)) + "小时前";  
  21.             }  
  22.         } else {  
  23.             SimpleDateFormat dateFormat;  
  24.                 dateFormat = new SimpleDateFormat("MM-dd hh:mm", Locale.ENGLISH);  
  25.             return dateFormat.format(date);  
  26.         }  
  27.     }  
  28.   
  29.     public  String getTimeStr(long date) {  
  30.         return getTimeStr(new Date(date * 1000));  
  31.     }  
  32. }  
 

 

分享到:   
  • 2011-12-14 

<think>好的,我需要回答用户关于C语言中time()函数的定义、用法和示例的问题。首先,我得回忆一下time()函数的基本知识。time()函数属于C标准库中的<time.h>头文件,用于获取当前的时间戳,通常是从1970年1月1日(Epoch)开始经过的秒数。 接下来,用户要求定义、用法和示例。根据引用[1],用户提供的示例中提到了time_t类型和struct tm结构,还有localtime和gmtime函数。我需要确认time()的函数原型,应该是time_t time(time_t *timer);,参数是一个指向time_t的指针,返回值也是time_t类型。如果参数为NULL,函数直接返回当前时间值;如果传入指针,则同时将值存储到指针指向的位置。 在用法方面,用户可能需要知道如何声明和使用time()函数,如何将返回的time_t转换为可读的时间格式。比如使用localtime将time_t转换为本地时间的struct tm结构,再用asctime或strftime来格式化输出。引用[1]中的代码示例展示了如何获取本地时间和GMT时间,这可以作为示例的参考。 另外,用户提供的引用中还有关于递归和system函数的内容,但可能和time()无关,需要忽略。不过要注意,用户可能之前的问题涉及这些内容,但现在专注于time()函数。因此,需要确保回答紧扣主题。 还需要检查LaTeX格式是否正确,比如行内数学表达式用$...$,独立公式用$$...$$。但这个问题可能不需要数学公式,所以主要注意代码块的格式是否正确,如用三个反引号包裹代码,并标明语言类型。 最后,生成相关问题。可能需要考虑time()的常见问题,比如时间转换、时区处理、精度问题等。确保问题与time()函数相关,并且对用户有帮助。 现在整合这些信息,形成一个结构清晰的回答,包括定义、用法、示例,以及相关问题。同时正确引用用户提供的引用[1],因为示例代码中使用了time()函数和相关的时间函数。</think>### C语言time()函数详解 #### 一、函数定义 `time()`函数属于C标准库的**时间处理函数**,定义于$<time.h>$头文件中。其原型为: ```c time_t time(time_t *timer); ``` - **参数**:接受一个`time_t*`类型的指针。若传入`NULL`,直接返回当前时间戳;若传入有效指针,时间戳会同时存入该地址 - **返回值**:返回当前时间距离Epoch(1970-01-01 00:00:00 UTC)的秒数,类型为`time_t`(通常是long int的别名) #### 二、核心用法 1. **基本时间戳获取** ```c time_t now = time(NULL); // 直接获取时间戳 ``` 2. **配合时间结构体转换** - `struct tm`:包含年、月、日等细分时间字段的结构体 - 转换函数: - `localtime()`:将时间转为本地时间 - `gmtime()`:转为格林尼治标准时间(GMT) ```c struct tm *local_time = localtime(&now); printf("%d年%d月%d日", local_time->tm_year+1900, local_time->tm_mon+1, local_time->tm_mday); ``` #### 三、完整示例 ```c #include <stdio.h> #include <time.h> int main() { time_t raw_time; struct tm *time_info; time(&raw_time); // 获取原始时间戳 time_info = localtime(&raw_time); // 转为本地时间结构体 printf("当前时间戳:%ld\n", raw_time); printf("格式化时间:%s", asctime(time_info)); // 使用asctime转为字符串 return 0; } ``` 输出示例: ``` 当前时间戳:1717024000 格式化时间:Wed May 30 15:06:40 2024 ``` #### 四、关键特性 1. **跨平台差异**:Windows系统中`time_t`是32位整数(2038年问题),Linux系统多为64位 2. **时间格式化扩展**: - `strftime()`函数支持自定义格式(如`%Y-%m-%d %H:%M:%S`) - 示例: ```c char buffer[80]; strftime(buffer, 80, "现在时间:%F %T", time_info); puts(buffer); // 输出:现在时间:2024-05-30 15:06:40 ``` #### 五、典型应用场景 1. 程序运行时间测量: ```c time_t start = time(NULL); // 执行耗时操作... printf("耗时:%ld秒\n", time(NULL)-start); ``` 2. 日志记录时间戳 3. 定时任务触发判断 [^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值