strptime给出了 "隐式声明 "和 "未定义的引用"
所以,当我使用该函数strptime时,我都会得到两个警告: warning: implicit declaration of function 'strptime' 之后的错误: undefined reference to 'strptime' 是的,我包括time.h.这是我使用它的小样本代码. #include void my_function() { char buf* = "2016-02-05 12:45:10"; struct tm time*; ... strptime(buf, "%F %T", &time); ... } 我知道time.h在工作,因为在同一.c文件中,我使用strftime,time_t和'struct tm time.h time.h没有问题.我知道这是strptime,因为当我评论该代码行时,它会毫无问题地编译. 解决方案 您缺少在您是哪个平台上告
2 2024-04-09
编程技术问答社区
编译器在使用strptime函数时得到警告(C)
键入man strptime它需要该功能声明_xopen_source并包含时间.我做到了.但是,当我尝试编译我的代码时,我会得到: ./check.c:56:警告:函数'strptime'的隐式声明 查看我的代码: int lockExpired(const char *date, const char *format, time_t current) { struct tm *tmp = malloc(sizeof(struct tm *)); time_t lt; int et; strptime(date, format, tmp); lt = mktime(tmp); et = difftime(current, lt); if (et
4 2024-04-07
编程技术问答社区
C : 在strptime中进行验证
C中的 strptime()函数无法检测到无效的日期.例如:2011-02-31,2011-04-31. 此问题是否有其他功能或解决方法 解决方案 使用mktime在使用strptime>. 之后 struct tm ltm = {0}; char buf[] = "2011-02-31"; puts(buf); strptime(buf, "%Y-%m-%d", <m); mktime(<m); strftime(buf, sizeof(buf), "%Y-%m-%d", <m); puts(buf); 上面的示例将产生以下输出: 2011-02-31 2011-03-03 如果mktime之前和之后的字符串不匹配,则您知道输入字符串不是有效的日期. 如果您需要知道哪个字段无效,则可以在调用mktime之前保存ltm结构的副本.然后,您可以检查一天(tm_mday),月(tm_mon)或年(tm_year)是无效格式的一天.对于tm_mon
0 2024-04-06
编程技术问答社区
带有时区和jq的Strptime
不确定我在这里做错了什么 getting_data | gunzip | jq -r '.time_field | strptime("%Y-%m-%dT%H:%M:%S.%fZ")' 错误又回来了: jq: error (at :0): date "2018-03-13T14:00:17.1614661Z" does not match format "%Y-%m-%dT%H:%M:%S.%fZ" 所需的输出将为2018-03-13 14:00:17 解决方案 所以我找到了解决Zulu偏移量和纳米秒的解决方法,因为我真的不太在乎纳米秒.不确定它是否有效 echo '{"time_field": "2018-03-13T14:00:17.1234567Z"}' | jq -r ' .time_field | split(".")[0] | strptime("%Y-%m-%dT%H:%M:%S") | mktime | strft
0 2024-03-28
编程技术问答社区
为什么Time.strptime()会返回当前日期?
向私人(无公共文档)API以JSON格式返回数据. 我感兴趣的值是日期.它返回ASP.NET JSON日期格式中的日期.这是它的样子: AanmeldDatum: "/Date(1406675114000+0200)/" 还有另一个称为AangeBodenSindStekst的变量,这意味着提供SinceText,其值为" 8 Augustus 2014".因此,未知日期格式应分解为该特定值. 我已经尝试过: require 'time' foo = Time.strptime('1406675114000+0200', '%N') # => 2014-08-12 13:38:46 +0200 foo = Time.strptime('1406675114000+0200', '%N%z') # => 2014-08-12 14:38:58 +0200 ,但它只是返回当前时间. 我知道100%确定/Date(1406675114000+0200)/
6 2024-03-10
编程技术问答社区
将字符串在阵列中转换为日期
我已经从TXT文件中读取了一系列字符串,并使用这样一行将其保存为(超过千值)的数组: dates = np.genfromtxt('filename.txt', delimiter=";", usecols=(0), dtype=None) 接下来,我想将字符串转换为日期.我试图使用该行: dates2 = dt.datetime.strptime([dates], '"%Y-%m-%d"').date() 但是,我有一个错误: typeError:必须是字符串,不列表 我发现这样的代码正常: data1='"2010-02-28"' data1_1 = dt.datetime.strptime(data1, '"%Y-%m-%d"').date() 我应该如何处理所描述的问题? 解决方案 对未来读者的注释:请不要编辑此答案. '"%Y-%m-%d"'不是错误. OP的日期被引号包围. dates是字符串列表.因此,如果您想从其元素
4 2024-03-05
编程技术问答社区
datetime.strptime的奇怪行为
我在运行Python 3.6.8的AWS虚拟机上遇到以下错误,而在我的笔记本电脑上,它可以与Python 3.6.1 一起使用. return datetime.strptime(date_str, self.date_format) File "/usr/lib64/python3.6/_strptime.py", line 565, in _strptime_datetime tt, fraction = _strptime(data_string, format) File "/usr/lib64/python3.6/_strptime.py", line 362, in _strptime (data_string, format)) ValueError: time data 'Fri, 23 Aug 2019 20:24:46 IDT' does not match format '%a, %d %b %Y %H:%M:%S %Z' 我正
24 2024-01-25
编程技术问答社区
如何使用strptime(fromdate.c_str(),"%y-%m%d%h%m%s",&tm);在窗户上
我有一个在Windows上正常工作的代码,我必须使其与Linux兼容. 谁能帮助我将以下代码段配置为Windows? MongoDB* db = MongoDB::getInstance(); mongocxx::pipeline p{}; struct tm tm; strptime(fromdate.c_str(), "%Y-%m-%d %H %M %S", &tm); //this line gives me some errors std::time_t tt = std::mktime(&tm); 我遇到的错误 `错误c3861:'strptime':找不到标识符 我尝试使用#include ,#include "namespace.h" 任何人都可以告诉我如何在项目中包含这些标头文件或解决此问题的任何其他方法 预先感谢您 解决方案 如果您无法获得strptime的BSD版本,则可
6 2023-12-07
编程技术问答社区
ValueError:时间数据'星期二2023年2月28日11:27:38 AM CET'不匹配格式'%a%d%d%b%y%i:%m:%s%p%z'
我有一个浮标. 获得了2个相同的服务器.两者Ubuntu 22.04 两者都运行Python 3.10.6 第一个服务器我运行的代码都很好: Python 3.10.6 (main, Nov 14 2022, 16:10:14) [GCC 11.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from datetime import datetime >>> date_time_str = 'Tue 28 Feb 2023 11:27:38 AM CET' >>> date_time_obj = datetime.strptime(date_time_str, '%a %d %b %Y %I:%M:%S %p %Z') >>> print ("The type of the date is now", type(date_time_obj)
8 2023-11-13
编程技术问答社区
time.strptime()--参数0必须是str,而不是bytes
显然我已经知道strftime and strptime不喜欢字节字符串作为参数,但是我在这里的泡菜,因为我需要读取保存有不同字符编码的文件内容在其中,我需要全部处理它们,并将此文本文件中每一行的时间部分发送到strptime(). 快速修复将是拆分字符串,确保时间仅包含数字和破折号,但是是否可以以某种方式通过字节对象而不试图将编码弄清楚strptime()? with open('file.txt', 'rb') as fh: for line in fh: time.strptime(line, '%Y-%m-%d ...') 这显然会失败.我想到了repr(line),但这会导致字符串看起来像b'2014-01-07 ...',我可以剥离. 解决方案 line是一个bytestring,因为您以二进制模式打开文件.您需要解码字符串;如果是与模式匹配的日期字符串,则可以简单地使用ASCII: time.strptime(line
16 2023-11-11
编程技术问答社区
将unicode转换成适当的strptime格式的日期时间
我正在尝试将Unicode对象转换为DateTime对象. 我阅读文档: http://docs.python. org/2/library/time.html#time.strptime 尝试 datetime.strptime(date_posted, '%Y-%m-%dT%H:%M:%SZ') 但是我收到错误消息ValueError: time data '2014-01-15T01:35:30.314Z' does not match format '%Y-%m-%dT%H:%M:%SZ' 关于正确格式的任何反馈? 我感谢时间和专业知识. 解决方案 您可以分析微秒: from datetime import datetime date_posted = '2014-01-15T01:35:30.314Z' datetime.strptime(date_posted, '%Y-%m-%dT%H:%M:%S.%fZ') 其他解决方
16 2023-11-06
编程技术问答社区
c中的strptime与时区偏移量
我很难找到一种从字符串中解析时区的方法:如下: " THU,1月1日2011年09:06:03 -0400(EDT)" 我在程序的较大方案中需要做的是将其转换为char*,然后将其转换为time_t. 以下是我编写的简单测试程序,试图弄清Strptime是否完全考虑了时区,并且似乎不是(当此测试程序执行所有印刷数字时,当它们都应该有所不同时都是相同的).建议? 我还尝试使用gnu getDate和getdate_r,因为这看起来像是灵活格式的更好选择,但是我收到了编译器的"隐式函数声明"警告,这意味着我并不包括正确的库.还有其他我应该是#incress-in以使用getDate吗? #include #include #include #include #ifndef __USE_XOPEN #define __USE_XOPEN #endif #include
18 2023-10-22
编程技术问答社区
我如何在R中为3个字母tz指定POSIX(时间)格式,以便忽略它?
对于输出,规范为%Z(请参阅?strptime).但是对于输入,这是如何工作的? 要澄清,对于时区的缩写来说,通过as.POSIXct()将其分解为有用的信息非常好,但是更多的核心是如何使函数至少忽略时区. 这是我最好的解决方案,但是是否有一个特定格式代码将其传递给as.POSIXct()可以用于所有时区? times
10 2023-10-22
编程技术问答社区
c/c++ strptime()不能解析 %Z 时区名称
我是C的新手.我注意到一些不同.请建议我做错了什么. #include #include #include /* test different format string to strptime " %A, %b %d, %X %z %Y " " %A, %b %d, %X %Z %Y " */ int main(int argc,char *argv[]) { char date[] = "6 Mar 2001 12:33:45"; char fmt[80]; struct tm tm; if (argc==1) return 0; strcpy(fmt,argv[1]); memset(&tm, 0, sizeof(struct tm)); if (strptime(date,"%d %b %Y %H:%M:%S",&tm)==NULL) printf("error\n
10 2023-10-22
编程技术问答社区
使用特殊时区格式的 strptime %z
我正在处理从Teradata导出的.CSV数据.几个列最初是带有时区的时间戳,因此在将.csv加载后,我想将这些列(将其作为字符串加载)转换为posixlt或posixct.我正在使用strptime,但是.csv文件中时区的格式与strptime的期望不匹配.例如,它期望-0400,但.csv的格式-04:00,其中结肠将小时和分钟分开. 我可以去除结肠,但这是我想避免的额外步骤和并发症.有没有办法告诉strptime为时区(%z)使用其他格式? 这是一个示例: ## Example data: x
4 2023-10-22
编程技术问答社区
python的解析日期和时间戳随时间.
我的云服务器以这种格式登录时间: [17/Dec/2011:09:48:49 -0600] 要将其读为Python变量,我可以说: >>>str = '17/Dec/2011:09:48:49 -0600' >>>import time >>>print time.strptime(str,"%d/%b/%Y:%H:%M:%S -0600") 结果: time.struct_time(tm_year=2011, tm-mon=12, tm=mday=17, tm_hour=9, tm_min=48, tm_sec=49, tm_wday=5, tm_yday=351, tm_isdst=-1) 或我可以尝试 >>>mytime = time.strptime(str,"%d/%b/%Y:%H:%M:%S -0600") >>>print mytime.tm_hour 结果: 9 -0600做什么?我希望它会在日期时间对象中调整小时值吗?
18 2023-10-22
编程技术问答社区
带时区的 Strptime
我有一个用DateTime.strptime解析的字符串.字符串中日期的时区为CET,但Ruby创建了一个UTC DateTime对象,当然具有2小时的偏移. 目前我正在处理DateTime.strptime().change(:offset => "+0020")的问题,但我很确定这不是它的工作方式. 有人可以以正确的方式启发我吗? 解决方案 我无法删除接受的答案 正如@leejarvis在下面的评论部分中指出的那样,Chronic.parse不接受:time_class选项.因此,此答案是越来越小的,虽然它看起来有效,但它行不通(除非慢性允许很快通过:time_class选项.) ) 慢性宝石真的很强大. 我这样用它: Chronic.parse("next 5:00 pm", :time_class => ActiveSupport::TimeZone.new(User.first.time_zone)).utc 在上面的示例中,
10 2023-10-22
编程技术问答社区
strptime有通配符格式指令吗?
我正在使用strptime这样: import time time.strptime("+10:00","+%H:%M") 但" +10:00"也可能是" -10:00"(UTC的时区偏移),它将破坏上述命令.我可以使用 time.strptime("+10:00"[1:],"%H:%M") ,但理想情况下,我会发现在格式代码前使用通配符更可读. Python的strptime/strftime? 是否存在这样的通配符操作员 解决方案 没有通配符操作员. 格式指令的列表 strptime支持的strptime IS在文档中. 您正在寻找的是%z格式指令,它支持表单+HHMM或-HHMM时区的表示.虽然datetime.strftime支持了一段时间,但仅在strptime strptime python 3.2 . 在Python 2上,处理此操作的最佳方法可能是使用import datetime tz = "+10:00" def tz_to
8 2023-10-22
编程技术问答社区
R(非标准格式)格式日期
在r中不熟悉r或格式化日期,不会问这个问题,但是我的行为非常奇怪,在过去的两个小时中,我无法更近地解决它. 我有一个我已经导入的数据集,并希望使用as.POSIXct格式化日期/时间列.日期是一种非标准格式,我应用了我所知道的是适当的格式.这是我遇到麻烦的一小部分数据.在此之后的代码.问题是有4个Na的"2015-03-08 02:00:00 PST".是什么赋予了?这似乎是完全随机的,因为它在其他55k观察中没有其他地方. bad.Dates
8 2023-10-22
编程技术问答社区