标签: strftime

strftime性能与snprintf

我遇到了一个有趣的性能难题,但在我开始深入研究glibc并在左右中心输入错误之前,我只想获得可能存在的任何洞察力.

我有一个代码,在其中一个函数中执行此操作:

gettimeofday( &tv, 0);
localtime_r( &tv.tv_sec, &local_tm );
char result[25];
strftime( result, 24, "%Y-%m-%d %H:%M:%S", &local_tm);
Run Code Online (Sandbox Code Playgroud)

其余代码与此问题无关.当我用这个替换它:

gettimeofday( &tv, 0);
localtime_r( &tv.tv_sec, &local_tm );
char result[25];
snprintf(result, sizeof(result), "%04d-%02d-%02d %02d:%02d:%02d",
         local_tm.tm_year+1900, local_tm.tm_mon+1,
         local_tm.tm_mday, local_tm.tm_hour, local_tm.tm_min,
         local_tm.tm_sec);
Run Code Online (Sandbox Code Playgroud)

平均而言,我的性能提升了20%.

有没有人碰到这个?这个操作系统特定吗?

c c++ performance printf strftime

7
推荐指数
1
解决办法
1709
查看次数

如何在C中正确检查strptime的有效日期

我正在做以下转换和检查日期,但是,我不确定为什么以下日期保持验证为真.

不会%d只检查[01,31] + leading zeros?有没有更好,更准确的方法呢?

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

int main () {
    struct tm tm; 

    char buffer [80];
    char *str = "29/Jan/2012";
    if (strptime (str, "%Y/%b/%d", &tm) == NULL)
        exit(EXIT_FAILURE);
    if (strftime (buffer,80,"%Y-%m-%d",&tm) == 0)
        exit(EXIT_FAILURE);

    printf("%s\n", buffer); // prints 29-01-20

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c validation date strftime strptime

7
推荐指数
1
解决办法
2611
查看次数

Rails undefined方法`strftime'代表"2013-03-06":String

我收到了错误

undefined方法`strftime'代表"2013-03-06":String

尝试使用strftime从字符串2013-03-06正常显示日期(2013年6月3日星期日或类似的东西).

在我的index.html.erb中执行此操作的行看起来像这样

<td><%= task.duedate.strftime("%B %e, %Y") %></td>

我只是在学习Rails所以我确信它只是一个愚蠢的初学者错误,任何帮助将不胜感激.谢谢

ruby ruby-on-rails strftime ruby-on-rails-3

7
推荐指数
1
解决办法
2万
查看次数

使用strftime将NSDate转换为String

如何将NSDate转换为NSString,使用strftime说明符格式化?

c iphone objective-c strftime nsdate

6
推荐指数
1
解决办法
2467
查看次数

c ++将time_t格式化为std :: string:buffer length的函数?

我想要一个函数,它将采用time_t参数和任意格式字符串并对其进行格式化.我想要这样的东西:

std::string GetTimeAsString(std::string formatString, time_t theTime)
{
    struct tm *timeinfo;
    timeinfo = localtime( &theTime);

    char buffer[100];
    strftime(buffer, 100, formatString.c_str(), timeinfo);
    std::string result(buffer);
    return result;
}
Run Code Online (Sandbox Code Playgroud)

但是我遇到的一个问题是缓冲区长度.我想做一些像formatString*4这样的缓冲区长度.但我猜你不能动态设置缓冲区长度?也许我可以挑选一个任意大的缓冲区?我有点担心如何使它成为通用的.

如何编写一个函数来实现这一目标?

c++ time buffer strftime stdstring

6
推荐指数
3
解决办法
7781
查看次数

strftime在PHP中生成第一个字母大写(大写)

我有代码:

<?php echo strftime("%Y %B %e, %A")?>
Run Code Online (Sandbox Code Playgroud)

在某些语言中我得到:

2012年junio 3,多明戈

我希望所有单词的首字母大写(大写),所以它看起来像:

2012 Junio 3,多明戈

我没有在互联网上找到任何答案,有人有想法吗?:)

php strftime

6
推荐指数
2
解决办法
7871
查看次数

将strtotime()转换为StrFTime()

我被要求为我们的计费系统编写一个模块,并使用我习惯的所有功能完成它.它是在英语设置上测试的,但我没有考虑(我也不知道)我们公司使用的实际系统是法语.

我写的代码是......

$due_date = strtotime($next_due_date);
$today = date('Y-m-d');
$today_date = strtotime($today);

if ($due_date > $today_date) {
Run Code Online (Sandbox Code Playgroud)

但是我不熟悉StrFTime,并想知道如何使用它来使这段代码适用于法语区域设置?

php strtotime strftime whmcs

6
推荐指数
1
解决办法
4541
查看次数

strftime错误的日期

我正在使用strftime来显示未来的日期.

但在使用时

strftime('%a., %d. %B %Y',time()+60*60*24*4)
Run Code Online (Sandbox Code Playgroud)

我将于2013年4月1日,而不是苏,2013年3月31日,今天使用它.

(Unix时间戳是1364423120)

strftime('%a., %d. %B %Y',time()+60*60*24*3)
Run Code Online (Sandbox Code Playgroud)

显示正确的Sa.,2013年3月30日

三月的最后一天有什么问题?

php date strftime

6
推荐指数
1
解决办法
2165
查看次数

python time.strftime %z 始终为零而不是时区偏移

>>> import time
>>> t=1440935442
>>> time.strftime("%Y/%m/%d-%H:%M:%S %z",time.gmtime(t))
'2015/08/30-11:50:42 +0000'
>>> time.strftime("%Y/%m/%d-%H:%M:%S %z",time.localtime(t))
'2015/08/30-13:50:42 +0000'
Run Code Online (Sandbox Code Playgroud)

偏移量保持不变 +0000,但我预计 '2015/08/30-13:50:42 +0200'

时区正确,因为该命令按其应有的方式解释大写 %Z

>>> time.strftime("%Y/%m/%d-%H:%M:%S %Z",time.localtime(t))
'2015/08/30-13:50:42 CEST'
Run Code Online (Sandbox Code Playgroud)

Unix 日期像我想要的那样工作

$ date -u --date @1440935442 +"%Y/%m/%d-%H:%M:%S %z"
2015/08/30-11:50:42 +0000
$ date --date @1440935442 +"%Y/%m/%d-%H:%M:%S %z"
2015/08/30-13:50:42 +0200
Run Code Online (Sandbox Code Playgroud)

python timezone strftime

6
推荐指数
1
解决办法
9380
查看次数

sqlite中的strftim()给出错误结果

我将date字段存储为自纪元以来的秒数

在此处输入图片说明

对于图像中的时间戳记(1550591783-representing 2019-02-19 19:26:23),sqlite应该50在一年中的某天返回,但它会返回40

这是查询PurchaseDao

@Query("SELECT strftime('%j', date, 'unixepoch', 'localtime') AS day " +
       "FROM purchase " +
       "WHERE ...")
abstract List<Cost> getCosts();
Run Code Online (Sandbox Code Playgroud)

这是日期转换器:

public class DateConverter {

    @TypeConverter
    public static Date fromTimestamp(Long value) {
        return value == null ? null : new Date(value * 1_000); // multiply by 1000 to make it milliseconds
    }

    @TypeConverter
    public static Long toTimestamp(Date date) {
        return date == null ? …
Run Code Online (Sandbox Code Playgroud)

sql sqlite android strftime android-room

6
推荐指数
1
解决办法
185
查看次数