On 3/12/16 12:33 AM, peter dalgaard wrote:
On 12 Mar 2016, at 00:05 , Mick Jordan <mick.jor...@oracle.com> wrote:
This is definitely obscure but we had a unit test that called .Internal(strptime,
"1942/01/01", %Y/%m/%d") with timezone (TZ) set to CET.
Umm, that doesn't even parse. And fixing the typo, it doesn't run:
.Internal(strptime, "1942/01/01", %Y/%m/%d")
Error: unexpected SPECIAL in ".Internal(strptime, "1942/01/01", %Y/%"
.Internal(strptime, "1942/01/01", "%Y/%m/%d")
Error in .Internal(strptime, "1942/01/01", "%Y/%m/%d") :
3 arguments passed to '.Internal' which requires 1
In R-3.1.3 that returned "1942-01-01 CEST" which, paradoxically, is correct as they
evidently did strange things in Germany during the war period. Java also returns the same. However,
R-3.2.4 returns "1942-01-01 CET".
Did you mean:
pd$ r-release-branch/BUILD-dist/bin/R
R version 3.2.4 Patched (2016-03-10 r70319) -- "Very Secure Dishes"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin13.4.0/x86_64 (64-bit)
[...]
strptime("1942/01/01", "%Y/%m/%d", tz="CET")
[1] "1942-01-01 CEST"
But then as you see, it does have DST on New Years Day.
All in all, there is something you are not telling us.
Notice that all DST information is OS dependent as it depends on which version of the
"Olson database" is installed.
You are correct that I was sloppy with syntax for the example. We are,
for better or worse, calling the .Internal, but actually with a large
vector of arguments, of which the 1942 entry is element 82. I can
confirm that for the vector of length 1 example that I didn't test but
just assumed would also fail, the answer is correct. However, it is not
for the full vector:
> .Internal(strptime(argv[[1]], argv[[2]], "CET"))
[1] "1937-01-01 CET" "1916-01-01 CET" "1913-01-01 CET" "1927-01-01 CET"
[5] "1947-01-01 CET" "1913-01-01 CET" "1917-01-01 CET" "1923-01-01 CET"
[9] "1921-01-01 CET" "1926-01-01 CET" "1920-01-01 CET" "1915-01-01 CET"
[13] "1914-01-01 CET" "1914-01-01 CET" "1914-01-01 CET" "1919-01-01 CET"
[17] "1948-01-01 CET" "1911-01-01 CET" "1909-01-01 CET" "1913-01-01 CET"
[21] "1925-01-01 CET" "1926-01-01 CET" "1910-01-01 CET" "1917-01-01 CET"
[25] "1936-01-01 CET" "1938-01-01 CET" "1960-01-01 CET" "1915-01-01 CET"
[29] "1919-01-01 CET" "1924-01-01 CET" "1914-01-01 CET" "1905-01-01 CET"
[33] "1921-01-01 CET" "1929-01-01 CET" "1926-01-01 CET" "1921-01-01 CET"
[37] "1908-01-01 CET" "1928-01-01 CET" "1919-01-01 CET" "1921-01-01 CET"
[41] "1925-01-01 CET" "1934-01-01 CET" "1927-01-01 CET" "1928-01-01 CET"
[45] "1934-01-01 CET" "1922-01-01 CET" "1923-01-01 CET" "1915-01-01 CET"
[49] "1934-01-01 CET" "1925-01-01 CET" "1922-01-01 CET" "1930-01-01 CET"
[53] "1924-01-01 CET" "1923-01-01 CET" "1919-01-01 CET" "1932-01-01 CET"
[57] "1930-01-01 CET" "1923-01-01 CET" "1930-01-01 CET" "1922-01-01 CET"
[61] "1919-01-01 CET" "1932-01-01 CET" "1939-01-01 CET" "1923-01-01 CET"
[65] "1920-01-01 CET" "1919-01-01 CET" "1952-01-01 CET" "1927-01-01 CET"
[69] "1924-01-01 CET" "1919-01-01 CET" "1925-01-01 CET" "1945-01-01 CET"
[73] "1916-01-01 CET" "1943-01-01 CET" "1920-01-01 CET" "1920-01-01 CET"
[77] "1931-01-01 CET" "1924-01-01 CET" "1919-01-01 CET" "1926-01-01 CET"
[81] "1920-01-01 CET" "1942-01-01 CET" "1919-01-01 CET" "1930-01-01 CET"
[85] "1925-01-01 CET" "1924-01-01 CET" "1926-01-01 CET" "1918-01-01 CET"
[89] "1922-01-01 CET" "1921-01-01 CET" "1925-01-01 CET" "1928-01-01 CET"
[93] "1925-01-01 CET" "1929-01-01 CET" "1933-01-01 CET" "1947-01-01 CET"
[97] "1950-01-01 CET" "1945-01-01 CET" "1924-01-01 CET" "1939-01-01 CET"
[101] "1924-01-01 CET" "1933-01-01 CET" "1928-01-01 CET"
> .Internal( strptime("1942/01/01", "%Y/%m/%d", ''))
[1] "1942-01-01 CEST"
> > argv[[1]][[82]]
[1] "1942/01/01"
We actually pass "" as the timezone, having set TZ=CET in the shell.
I am attaching a file that defines the large vector for sourcing.
Mick
argv <- list(c('1937/01/01', '1916/01/01', '1913/01/01', '1927/01/01',
'1947/01/01', '1913/01/01', '1917/01/01', '1923/01/01',
'1921/01/01', '1926/01/01', '1920/01/01', '1915/01/01',
'1914/01/01', '1914/01/01', '1914/01/01', '1919/01/01',
'1948/01/01', '1911/01/01', '1909/01/01', '1913/01/01',
'1925/01/01', '1926/01/01', '1910/01/01', '1917/01/01',
'1936/01/01', '1938/01/01', '1960/01/01', '1915/01/01',
'1919/01/01', '1924/01/01', '1914/01/01', '1905/01/01',
'1921/01/01', '1929/01/01', '1926/01/01', '1921/01/01',
'1908/01/01', '1928/01/01', '1919/01/01', '1921/01/01',
'1925/01/01', '1934/01/01', '1927/01/01', '1928/01/01',
'1934/01/01', '1922/01/01', '1923/01/01', '1915/01/01',
'1934/01/01', '1925/01/01', '1922/01/01', '1930/01/01',
'1924/01/01', '1923/01/01', '1919/01/01', '1932/01/01',
'1930/01/01', '1923/01/01', '1930/01/01', '1922/01/01',
'1919/01/01', '1932/01/01', '1939/01/01', '1923/01/01',
'1920/01/01', '1919/01/01', '1952/01/01', '1927/01/01',
'1924/01/01', '1919/01/01', '1925/01/01', '1945/01/01',
'1916/01/01', '1943/01/01', '1920/01/01', '1920/01/01',
'1931/01/01', '1924/01/01', '1919/01/01', '1926/01/01',
'1920/01/01', '1942/01/01', '1919/01/01', '1930/01/01',
'1925/01/01', '1924/01/01', '1926/01/01', '1918/01/01',
'1922/01/01', '1921/01/01', '1925/01/01', '1928/01/01',
'1925/01/01', '1929/01/01', '1933/01/01', '1947/01/01',
'1950/01/01', '1945/01/01', '1924/01/01', '1939/01/01',
'1924/01/01', '1933/01/01', '1928/01/01'), '%Y/%m/%d', '');
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel