标签: strptime

strptime是否有通配符格式指令?

我正在这样使用strptime

import time
time.strptime("+10:00","+%H:%M")
Run Code Online (Sandbox Code Playgroud)

但是“ +10:00”也可以是“ -10:00”(与UTC的时区偏移),这会破坏上述命令。我可以用

time.strptime("+10:00"[1:],"%H:%M")
Run Code Online (Sandbox Code Playgroud)

但理想情况下,我认为在格式代码前使用通配符更具可读性。

Python的strptime/ 是否存在这样的通配符运算符strftime

python time timezone strptime

5
推荐指数
1
解决办法
4946
查看次数

使用time.strptime格式在Python中解析日期和时间戳

我的云服务器以这种格式记录时间:

[17/Dec/2011:09:48:49 -0600]
Run Code Online (Sandbox Code Playgroud)

要把它读成Python变量,我可以说:

>>>str = '17/Dec/2011:09:48:49 -0600'
>>>import time
>>>print  time.strptime(str,"%d/%b/%Y:%H:%M:%S -0600")
Run Code Online (Sandbox Code Playgroud)

结果:

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)
Run Code Online (Sandbox Code Playgroud)

或者我可以试试

>>>mytime = time.strptime(str,"%d/%b/%Y:%H:%M:%S -0600")
>>>print mytime.tm_hour
Run Code Online (Sandbox Code Playgroud)

结果:

9
Run Code Online (Sandbox Code Playgroud)

怎么-0600办?我期望它调整日期时间对象的小时值?是否有使用通配符而不是硬编码-0600

python time timezone strptime

5
推荐指数
1
解决办法
3万
查看次数

C : 在 strptime 中验证

C 中的 strptime() 函数无法检测无效日期。例如:2011-02-31、2011-04-31。此问题是否有任何其他功能或解决方法

c validation strptime

5
推荐指数
1
解决办法
9935
查看次数

c/c ++ strptime()不解析%Z时区名称

我是C的新手.当我练习C来隐蔽时间来刺激来回构造tm时.我注意到了一些差异.请告诉我做错了什么.

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

/* 
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");
   char buf[128];
   strftime(buf, sizeof(buf), fmt, &tm);
   printf("%s\n", buf);
   printf("%d\n", tm.tm_isdst);
   if (strptime(buf,fmt,&tm)==NULL) printf("error\n");
   else {
   printf("year: %d; …
Run Code Online (Sandbox Code Playgroud)

c timezone strptime timestamp-with-timezone

5
推荐指数
1
解决办法
6838
查看次数

使用Ruby将字符串转换为日期

我的日期是字符串,格式如下:23 Nov. 2014.当然,使用这样的表达式将此字符串转换为日期很容易:

Date.strptime(my_string, '%d %b. %Y')
Run Code Online (Sandbox Code Playgroud)

但是月份是5月还有一个问题 - 没有点,比如23 May 2014.我的表情破裂了.

有人可以帮忙解决这个问题吗?如何为我的案例制作通用表达方式?

ruby date strptime

5
推荐指数
1
解决办法
702
查看次数

临时更改语言环境设置

实际问题

如何临时更改/指定用于某些函数调用的语言环境设置(例如strptime())?

背景

我只是运行了以下rvest演示:

demo("tripadvisor", package = "rvest")

当涉及到要删除日期的部分时,我遇到了一些很可能是由我的语言环境设置引起的问题:当我在德语语言环境中时,日期采用美式英语格式:

require("rvest")
url <- "http://www.tripadvisor.com/Hotel_Review-g37209-d1762915-Reviews-JW_Marriott_Indianapolis-Indianapolis_Indiana.html"

reviews <- url %>%
  html() %>%
  html_nodes("#REVIEWS .innerBubble")

date <- reviews %>%
  html_node(".rating .ratingDate") %>%
  html_attr("title")
> date
 [1] "December 9, 2014" "December 9, 2014" "December 8, 2014" "December 8, 2014"
 [5] "December 6, 2014" "December 5, 2014" "December 5, 2014" "December 3, 2014"
 [9] "December 3, 2014" "December 3, 2014"
Run Code Online (Sandbox Code Playgroud)

基于此输出,我将使用以下格式:(%B %e, %Y%B%e, %Y取决于“带一个空格的单位数字的实际含义”实际上是指WRT到该开头的空格;请参见参考资料?strptime)。 …

locale r strptime

5
推荐指数
1
解决办法
1550
查看次数

r strptime(R版本3.2.2)

对于带有"AM或PM"的文本字符串,使用strptime在R 3.0.2版中运行良好

> strptime("8/25/2015 6:38:41 PM", "%m/%d/%Y %I:%M:%S %p")
[1] "2015-08-25 18:38:41"
Run Code Online (Sandbox Code Playgroud)

我最近升级到R 3.2.2,现在发现这个推荐返回NA:

>strptime("8/25/2015 6:38:41 PM", "%m/%d/%Y %I:%M:%S %p")
[1] NA
Run Code Online (Sandbox Code Playgroud)

它似乎与"PM"有关.如果我删除"PM"并使用如下命令,它可以工作(但当然它解释为AM而不是PM):

>strptime("8/25/2015 6:38:41", "%m/%d/%Y %H:%M:%S")
[1] "2015-08-25 06:38:41 NZST"
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

更新:

谢谢大家的意见:

我重新安装了R 3.2.2但得到了同样的错误

>  strptime("8/25/2015 6:38:41 PM", "%m/%d/%Y %I:%M:%S %p")
[1] NA
Run Code Online (Sandbox Code Playgroud)

这是请求的会话信息

>  sessionInfo()
R version 3.2.2 (2015-08-14)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

locale:
[1] LC_COLLATE=English_New Zealand.1252  LC_CTYPE=English_New Zealand.1252   
[3] LC_MONETARY=English_New Zealand.1252 LC_NUMERIC=C                        
[5] LC_TIME=English_New Zealand.1252    

attached base …
Run Code Online (Sandbox Code Playgroud)

r strptime

5
推荐指数
1
解决办法
226
查看次数

比较日期的替代strptime?

有没有办法比较两个日期而不是每次在python中调用strptime?我确定我的问题没有其他方法,但我想确保我已经检查了所有选项.

我正在浏览一个非常大的日志文件,每行都有一个我需要比较的日期,以查看该日期是否在其他两个日期的范围内.我不得不用strptime转换每一行的每个日期,这会导致一个巨大的瓶颈;

Fri Sep  2 15:12:43 2016    output2.file

         63518075 function calls (63517618 primitive calls) in 171.409 seconds

   Ordered by: cumulative time
   List reduced from 571 to 10 due to restriction <10>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.003    0.003  171.410  171.410 script.py:3(<module>)
        1    0.429    0.429  171.367  171.367 scipt.py:1074(main)
        1    3.357    3.357  162.009  162.009 script.py:695(get_data)
  1569898   14.088    0.000  141.175    0.000 script.py:648(check_line)
  1569902    6.899    0.000   71.706    0.000 {built-in method strptime}
  1569902   31.198    0.000   64.805    0.000 /usr/lib64/python2.7/_strptime.py:295(_strptime)
  1569876   15.324    0.000   43.170    0.000 …
Run Code Online (Sandbox Code Playgroud)

python regex loops strptime

5
推荐指数
1
解决办法
304
查看次数

如何使用strptime解析str(my_datetime)?

这是日期时间的默认字符串表示形式

>>> from datetime import datetime, timezone
>>> dt = datetime(2017, 1, 1, tzinfo=timezone.utc)
>>> print(dt)
2017-01-01 00:00:00+00:00
Run Code Online (Sandbox Code Playgroud)

用它解析的正确格式字符串是datetime.strptime什么?也就是说,用什么代替“ ???” 查看以下结果:

>>> from dateutil.parser import parse
>>> parse(date_str) == datetime.strptime('???', date_str)
True
Run Code Online (Sandbox Code Playgroud)

python timezone datetime strptime

5
推荐指数
1
解决办法
225
查看次数

如何获取日期时间对象的最大值和最小值

我有一个包含多年数据的 csv 文件,我需要计算两个日期(最大日期和最小日期)之间的差异,所以我相信我应该提取最大日期和最小日期。

这是我的数据:

timestamp,heure,lat,lon,impact,type
2006-01-01 00:00:00,13:58:43,33.837,-9.205,10.3,1
2006-01-02 00:00:00,00:07:28,34.5293,-10.2384,17.7,1
2007-02-01 00:00:00,23:01:03,35.0617,-1.435,-17.1,2
2007-02-02 00:00:00,01:14:29,36.5685,0.9043,36.8,1
....
2011-12-31 00:00:00,05:03:51,34.1919,-12.5061,-48.9,1
Run Code Online (Sandbox Code Playgroud)

我在我的代码中按如下方式进行:

 W=np.loadtxt(dataFile,delimiter=',',dtype={'names': ('datum','timestamp','lat','lon','amp','ty'),
                            'formats':('S10',     'S8'   ,'f4' ,'f4' ,'f4','S3' )})

 day = datetime.strptime(W['datum'][0],'%Y-%m-%d')
 time=[]
 for i in range(W.size):
 timestamp = datetime.strptime(W['datum'][i]+' '+W['timestamp'][i],'%Y-%m-%d %H:%M:%S')
 Tempsfinal = max(timestamp)
 Tempsinitial = min(timestamp)
 interval=int((Tempsfinal- Tempsinitial)/6)
Run Code Online (Sandbox Code Playgroud)

所以,这样做我得到了错误:

datetime.datetime' 对象不可迭代

我该如何继续?

datetime strptime python-2.7

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