Skip to content

Commit 120e12d

Browse files
committed
BUG: Return local Timestamp.weekday_name attribute (pandas-dev#17354)
1 parent 8351f86 commit 120e12d

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

pandas/_libs/tslib.pyx

+12-4
Original file line numberDiff line numberDiff line change
@@ -532,9 +532,7 @@ class Timestamp(_Timestamp):
532532

533533
@property
534534
def weekday_name(self):
535-
out = get_date_name_field(
536-
np.array([self.value], dtype=np.int64), 'weekday_name')
537-
return out[0]
535+
return self._get_named_field('weekday_name')
538536

539537
@property
540538
def dayofyear(self):
@@ -1268,13 +1266,23 @@ cdef class _Timestamp(datetime):
12681266
# same timezone if specified)
12691267
return datetime.__sub__(self, other)
12701268

1271-
cpdef _get_field(self, field):
1269+
cpdef _maybe_convert_value_to_local(self):
1270+
"""Convert UTC i8 value to local i8 value if tz exists"
12721271
val = self.value
12731272
if self.tz is not None and not _is_utc(self.tz):
12741273
val = tz_convert_single(self.value, 'UTC', self.tz)
1274+
return val
1275+
1276+
cpdef _get_field(self, field):
1277+
val = self._maybe_convert_value_to_local()
12751278
out = get_date_field(np.array([val], dtype=np.int64), field)
12761279
return int(out[0])
12771280
1281+
cpdef _get_named_field(self, field):
1282+
val = self._maybe_convert_value_to_local()
1283+
out = get_date_name_field(np.array([val], dtype=np.int64), field)
1284+
return out[0]
1285+
12781286
cpdef _get_start_end_field(self, field):
12791287
month_kw = self.freq.kwds.get(
12801288
'startingMonth', self.freq.kwds.get(

pandas/tests/scalar/test_timestamp.py

+8
Original file line numberDiff line numberDiff line change
@@ -555,6 +555,14 @@ def check(value, equal):
555555
for end in ends:
556556
assert getattr(ts, end)
557557

558+
@pytest.mark.parametrize('data, expected',
559+
[(Timestamp('2017-08-28 23:00:00'), 'Monday'),
560+
(Timestamp('2017-08-28 23:00:00', tz='EST'),
561+
'Monday')])
562+
def test_weekday_name(self, data, expected):
563+
# GH 17354
564+
assert data.weekday_name == expected
565+
558566
def test_pprint(self):
559567
# GH12622
560568
import pprint

0 commit comments

Comments
 (0)