diff --git a/geomagio/pcdcp/PCDCPFactory.py b/geomagio/pcdcp/PCDCPFactory.py
index 05d3bdbd9f94bd1bc6a364e1bf49703cd3e8ce2e..3133b8ac462a592933eba7058d05dbd180d9765e 100644
--- a/geomagio/pcdcp/PCDCPFactory.py
+++ b/geomagio/pcdcp/PCDCPFactory.py
@@ -10,7 +10,7 @@ from .PCDCPWriter import PCDCPWriter
 
 # pattern for pcdcp file names
 PCDCP_FILE_PATTERN = '%(obs)s%(y)s%(j)s.%(i)s'
-# note: seconds files end in .raw, not .sec
+# note: seconds files end in .raw after 2008, .sec or .Sec on or before
 
 
 class PCDCPFactory(TimeseriesFactory):
@@ -54,20 +54,15 @@ class PCDCPFactory(TimeseriesFactory):
         parser = PCDCPParser()
         parser.parse(data)
 
-        yr = int(parser.header['year'])
-        yrday = int(parser.header['yearday'])
+        sample_periods = {4: 60.0, 5: 1.0}
+        sample_period = sample_periods[len(parser.times[0])]
 
-        begin = int(parser.times[0])
-        startHour = int(begin / 60.0)
-        startMinute = int(begin % 60.0)
-        ending = int(parser.times[-1])
-        endHour = int(ending / 60.0)
-        endMinute = int(ending % 60.0)
+        yr = parser.header['year']
+        yrday = parser.header['yearday']
 
-        starttime = obspy.core.UTCDateTime(year=yr, julday=yrday,
-                        hour=startHour, minute=startMinute)
-        endtime = obspy.core.UTCDateTime(year=yr, julday=yrday, hour=endHour,
-                        minute=endMinute)
+        startday = obspy.core.UTCDateTime(yr+yrday)
+        starttime = startday + int(parser.times[0])*sample_period
+        endtime = startday + int(parser.times[-1])*sample_period
 
         data = parser.data
         length = len(data[list(data)[0]])
diff --git a/test/pcdcp_test/PCDCPFactory_test.py b/test/pcdcp_test/PCDCPFactory_test.py
index 7466a0f107eed25342204070dc850adaa8d8f7fd..d30de4b759ea33c2a63753ccc663df200f61bc91 100644
--- a/test/pcdcp_test/PCDCPFactory_test.py
+++ b/test/pcdcp_test/PCDCPFactory_test.py
@@ -13,6 +13,14 @@ pcdcpString = \
 0003  2086239    -5632  4745739  5237796
 0004  2086198    -5626  4745743  5237786"""
 
+pcdcpString_seconds = \
+"""BOU  2015  001  01-Jan-15  HEZF  0.001nT  File Version 2.00
+00000  20861520    -57095  47457409  52377630
+00001  20861533    -57096  47457397  52377650
+00002  20861554    -57077  47457391  52377650
+00003  20861578    -57068  47457389  52377680
+00004  20861600    -57068  47457384  52377660
+"""
 
 def test_parse_string():
     """pcdcp_test.PCDCPFactory_test.test_parse_string()
@@ -27,3 +35,25 @@ def test_parse_string():
     assert_equals(stream[0].stats.station, 'BOU')
     assert_equals(stream[0].stats.starttime,
                 UTCDateTime('2015-01-01T00:00:00.000000Z'))
+    assert_equals(stream[0].data[1], 20861.90)
+    assert_equals(stream[0].stats.endtime,
+                UTCDateTime('2015-01-01T00:04:00.000000Z'))
+    assert_equals(stream[2].data[-1], 47457.43)
+
+def test_parse_string_seconds():
+    """pcdcp_test.PCDCPFactory_test.test_parse_string_seconds()
+
+    Send a PCDCP seconds file string into parse_string to make sure a well
+    formed stream is created with proper values
+    """
+    stream=PCDCPFactory().parse_string(pcdcpString_seconds)
+
+    assert_equals(type(stream), Stream)
+    assert_equals(stream[0].stats.network, 'NT')
+    assert_equals(stream[0].stats.station, 'BOU')
+    assert_equals(stream[0].stats.starttime,
+                UTCDateTime('2015-01-01T00:00:00.000000Z'))
+    assert_equals(stream[0].data[0], 20861.520)
+    assert_equals(stream[0].stats.endtime,
+                UTCDateTime('2015-01-01T00:00:04.000000Z'))
+    assert_equals(stream[2].data[-1], 47457.384)
\ No newline at end of file
diff --git a/test/pcdcp_test/PCDCPParser_test.py b/test/pcdcp_test/PCDCPParser_test.py
index 192cd911db23e0a4679107ae82fc205c0aa6756d..c9206d2a097a9b112f33bcf3b6619a61d2154a8b 100644
--- a/test/pcdcp_test/PCDCPParser_test.py
+++ b/test/pcdcp_test/PCDCPParser_test.py
@@ -52,7 +52,7 @@ def test_parse_header():
     assert_equals(parser.header['resolution'], '0.01nT')
 
 def test_parse_header_sec():
-        """pcdcp_test.PCDCPParsser_test.test_parse_header_sec()
+        """pcdcp_test.PCDCPParser_test.test_parse_header_sec()
 
         Call the _parse_header method with a pcdcp seconds file '.raw'
         header.  Verify the header name and value are split correctly.
@@ -65,4 +65,4 @@ def test_parse_header_sec():
         assert_equals(parser.header['station'], 'BOU')
         assert_equals(parser.header['year'], '2015')
         assert_equals(parser.header['yearday'], '001')
-        assert_equals(parser.header['resolution'], '0.001nT')
\ No newline at end of file
+        assert_equals(parser.header['resolution'], '0.001nT')