View previous topic :: View next topic |
Author |
Message |
Chopstix n00b
Joined: 20 Oct 2012 Posts: 20
|
Posted: Tue Dec 03, 2013 10:28 pm Post subject: Lc_time yyyy-mm-dd |
|
|
Hi
I am trying to get dates to be displayed in the format YYYY-MM-DD and this is proving ridiculously difficult.
From the beginning.
I had LC_ALL=en_US.utf8 and this resulted in:
$ eix x11-drivers/xf86-video-nouveau | grep 13: | Installed versions: 1.0.10(06:43:52 PM 12/03/2013) |
??/??/YYYY looks ridiculous, and furthermore I read that LC_ALL is a bad idea because you can't overwrite any of the individual items, so I changed it.
By the way, long-iso prints dates the way I want them, but I guess I can't use that in the locale.
$ ls -l: |
total 16
drwxr-xr-x 2 portage portage 4096 Dec 3 18:45 hsperfdata_portage
drwxr-xr-x 2 root root 4096 Dec 3 13:54 hsperfdata_root
drwx------ 2 kdm kdm 4096 Dec 3 10:04 kde-kdm
drwx------ 2 kdm kdm 4096 Dec 3 10:04 ksocket-kdm
$ TIME_STYLE="long-iso" ls -l
total 16
drwxr-xr-x 2 portage portage 4096 2013-12-03 18:45 hsperfdata_portage
drwxr-xr-x 2 root root 4096 2013-12-03 13:54 hsperfdata_root
drwx------ 2 kdm kdm 4096 2013-12-03 10:04 kde-kdm
drwx------ 2 kdm kdm 4096 2013-12-03 10:04 ksocket-kdm |
long-iso isn't in /usr/share/i18n/locales/, but POSIX is, so I tried adding that to /etc/locale.gen # cat /etc/locale.gen: |
# /etc/locale.gen: list all of the locales you want to have on your system
#
# The format of each line:
# <locale> <charmap>
#
# Where <locale> is a locale located in /usr/share/i18n/locales/ and
# where <charmap> is a charmap located in /usr/share/i18n/charmaps/.
#
# All blank lines and lines starting with # are ignored.
#
# For the default list of supported combinations, see the file:
# /usr/share/i18n/SUPPORTED
#
# Whenever glibc is emerged, the locales listed here will be automatically
# rebuilt for you. After updating this file, you can simply run `locale-gen`
# yourself instead of re-emerging glibc.
#en_US ISO-8859-1
#en_US.UTF-8 UTF-8
#ja_JP.EUC-JP EUC-JP
#ja_JP.UTF-8 UTF-8
#ja_JP EUC-JP
#en_HK ISO-8859-1
#en_PH ISO-8859-1
#de_DE ISO-8859-1
#de_DE@euro ISO-8859-15
#es_MX ISO-8859-1
#fa_IR UTF-8
#fr_FR ISO-8859-1
#fr_FR@euro ISO-8859-15
#it_IT ISO-8859-1
en_US UTF-8
POSIX UTF-8 |
and then execute locale-gen # locale-gen: |
* Generating 2 locales (this might take a while) with 1 jobs
* (1/2) Generating en_US.UTF-8 ... [ ok ]
* (2/2) Generating POSIX.UTF-8 ...LC_MONETARY: value of field `int_curr_symbol' has wrong length
No definition for LC_PAPER category found
No definition for LC_NAME category found
No definition for LC_ADDRESS category found
No definition for LC_TELEPHONE category found
No definition for LC_MEASUREMENT category found
No definition for LC_IDENTIFICATION category found
[ !! ]
* Generation complete |
Now I eselect it: # eselect locale list: |
Available targets for the LANG variable:
[1] C
[2] POSIX
[3] POSIX.utf8 *
[4] en_US
[5] en_US.utf8
[ ] (free form) |
# eselect locale set 5: |
Setting LANG to en_US.utf8 ...
Run ". /etc/profile" to update the variable in your shell. |
# . /etc/profile: |
-su: warning: setlocale: LC_TIME: cannot change locale (POSIX.UTF-8) |
# cat /etc/env.d/02locale: |
# Configuration file for eselect
# This file has been automatically generated.
LANG="en_US.utf8"
LC_TIME="POSIX.UTF-8" |
# . /etc/profile: |
-su: warning: setlocale: LC_TIME: cannot change locale (POSIX.UTF-8) |
$ eix x11-drivers/xf86-video-nouveau | grep 13: | Installed versions: 1.0.10(06:43:52 PM 12/03/2013) |
ლ(ձ_ճლ) y u no work?
I see I'm not the only one frustrated by this. See Miernik's posts, my thoughts exactly:
Miernik http://www.linux-archive.org/gentoo-user/127817-warning-locale-not-supported-xlib-locale-set-c.html wrote: |
Anyway, why is this we have to choose a territory for our language, I do
not live in any english-speaking territory, nor it is Denmark, and I
don't want to put on my computer on what territory I live, as it is none
of it's business. Couldn't there be something like POSIX.UTF-8 locale,
or maybe make the POSIX locale be UTF-8 by default? Or C.UTF-8
I would be very happy not having to put any specific country in the
settings of my computer.
And ordering of date - what does that have to do with territory and
language? I don't care what territory has what ordering commonly used -
I want to have it in form 2008-07-19, is there a way to do it?
(...)
Because how I like my computer to communicate with me, has nothing to do
with the territory on which it is located, the computer moved across
different territories, my computers are often on different territories
that I am, none of the territories the computer or I are frequently
located speak the language I want my computer to communicate in, nor do
their standard of dates are how I like then to be - I choose them to be
based on reason (dates shown from largest unit to smallest), not on
tradition or politics. I feel a world citizen, and don't want to be
psychologically tied to any single country, nor my computers, I feel its
horribly stupid to configure computers based on territory, its an
unneeded breach of privacy in case someone looks over my shoulder as I
type "locale" and sees a territory, then he/she would think I might have
ties to that territory, like if its the police or something, if I put
en_US than someone might think I am an US person, while I am not, and I
don't want to spend my time wondering which territory I should put in
when installing Linux, US, or GB or whatever, I just want a damn simple
international english territory neutral locale with dates in the form
YYYY-MM-DD and 24-hour clock time and . as the decimal separator (not ,
as it is in the en_DK locale). Is that so difficult to do?
(...)
How can I tell to LC_TIME that I want dates in yyyy-mm-dd format, and
24-hour clock time, and if anything wants week or month name, then show
it in english? |
|
|
Back to top |
|
|
fturco Veteran
Joined: 08 Dec 2010 Posts: 1181 Location: Italy
|
Posted: Wed Dec 04, 2013 11:38 am Post subject: |
|
|
I don't think POSIX.UTF-8 is a valid locale. You can use instead a locale with the ISO date format, such as en_DK.UTF-8. Also, be sure to read the localization guide and the UTF-8 guide on the wiki. |
|
Back to top |
|
|
ulenrich Veteran
Joined: 10 Oct 2010 Posts: 1480
|
Posted: Wed Dec 04, 2013 12:57 pm Post subject: |
|
|
Ignore LC_ALL - don't set it, because:
Quote: | LC_ALL A special variable for overriding all other settings. |
Set all of the other LC_* to plain en_US.utf8 but LC_TIME to your special needs!
As a german I don't like special german sort ordering but posix: LC_COLLATE=C
Using systemd symlink to /etc/locale.conf
PS: I never got it why there are two formats:
en_US.utf8
en_US.UTF-8 |
|
Back to top |
|
|
Chopstix n00b
Joined: 20 Oct 2012 Posts: 20
|
Posted: Wed Dec 04, 2013 4:06 pm Post subject: |
|
|
fturco: POSIX is a valid locale, UTF8 is a valid charmap.
As Miernik wrote, I don't want to use Denmark. I'm not Danish, I don't speak Danish save for a few swearwords, I can't tell Monday from Tuesday in Danish, I think it's a flat and expensive country, I don't want to use Denmark.
I did read the localization guide, as should be evident by what I wrote.
ulenrich: I already ceased using LC_ALL.
I don't use systemd.
I can't set LC_TIME "to my special needs" (which are surely not so special) because I don't know how to, that's why I came here.
en_US: | LC_TIME
abday "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
"<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
"<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
"<U0053><U0061><U0074>"
day "<U0053><U0075><U006E><U0064><U0061><U0079>";/
"<U004D><U006F><U006E><U0064><U0061><U0079>";/
"<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
"<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
"<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
"<U0046><U0072><U0069><U0064><U0061><U0079>";/
"<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
week 7;19971130;7
first_weekday 1
first_workday 2
abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
"<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
"<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
"<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
"<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
"<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
"<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
"<U004D><U0061><U0072><U0063><U0068>";/
"<U0041><U0070><U0072><U0069><U006C>";/
"<U004D><U0061><U0079>";/
"<U004A><U0075><U006E><U0065>";/
"<U004A><U0075><U006C><U0079>";/
"<U0041><U0075><U0067><U0075><U0073><U0074>";/
"<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
"<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
"<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
"<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
% Appropriate date and time representation (%c)
% "%a %d %b %Y %r %Z"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0072><U0020><U0025><U005A>"
%
% Appropriate date representation (%x)
% "%m/%d/%Y"
d_fmt "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0059>"
%
% Appropriate time representation (%X)
% "%r"
t_fmt "<U0025><U0072>"
%
% Appropriate AM/PM time representation (%r)
% "%I:%M:%S %p"
t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
<U0025><U0070>"
%
% Strings for AM/PM
%
am_pm "<U0041><U004D>";"<U0050><U004D>"
%
% Appropriate date representation (date(1)) "%a %b %e %H:%M:%S %Z %Y"
date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
<U0025><U005A><U0020><U0025><U0059>"
END LC_TIME |
en_DK: | LC_TIME
abday "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
"<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
"<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
"<U0053><U0061><U0074>"
day "<U0053><U0075><U006E><U0064><U0061><U0079>";/
"<U004D><U006F><U006E><U0064><U0061><U0079>";/
"<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
"<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
"<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
"<U0046><U0072><U0069><U0064><U0061><U0079>";/
"<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
"<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
"<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
"<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
"<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
"<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
"<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
"<U004D><U0061><U0072><U0063><U0068>";/
"<U0041><U0070><U0072><U0069><U006C>";/
"<U004D><U0061><U0079>";/
"<U004A><U0075><U006E><U0065>";/
"<U004A><U0075><U006C><U0079>";/
"<U0041><U0075><U0067><U0075><U0073><U0074>";/
"<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
"<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
"<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
"<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
% date formats following ISO 8601-1988
d_t_fmt "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064><U0054><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
t_fmt "<U0025><U0054>"
am_pm "";""
t_fmt_ampm ""
date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
<U0025><U005A><U0020><U0025><U0059>"
week 7;19971130;4
first_weekday 2
first_workday 2
END LC_TIME |
POSIX: | LC_TIME
# This is the POSIX Locale definition for
# the LC_TIME category.
#
# Abbreviated weekday names (%s)
abday "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";\
"<U0054><U0075><U0065>";"<U0057><U0065><U0064>";\
"<U0054><U0068><U0075>";"<U0046><U0072><U0069>";\
"<U0053><U0061><U0074>"
#
# Full weekday names (%A)
day "<U0053><U0075><U006E><U0064><U0061><U0079>";\
"<U004D><U006F><U006E><U0064><U0061><U0079>";\
"<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";\
"<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";\
"<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";\
"<U0046><U0072><U0069><U0064><U0061><U0079>";\
"<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
#
# Abbreviated month names (%b)
abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";\
"<U004D><U0061><U0072>";"<U0041><U0070><U0072>";\
"<U004D><U0061><U0079>";"<U004A><U0075><U006E>";\
"<U004A><U0075><U006C>";"<U0041><U0075><U0067>";\
"<U0053><U0065><U0070>";"<U004F><U0063><U0074>";\
"<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
#
# Full month names (%B)
mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";\
"<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";\
"<U004D><U0061><U0072><U0063><U0068>";\
"<U0041><U0070><U0072><U0069><U006C>";\
"<U004D><U0061><U0079>";\
"<U004A><U0075><U006E><U0065>";\
"<U004A><U0075><U006C><U0079>";\
"<U0041><U0075><U0067><U0075><U0073><U0074>";\
"<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";\
"<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";\
"<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";\
"<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
#
# Equivalent of AM/PM (%p) "AM"/"PM"
am_pm "<U0041><U004D>";"<U0050><U004D>"
#
# Appropriate date and time representation (%c)
# "%a %b %e %H:%M:%S %Y"
d_t_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>\
<U0020><U0025><U0048><U003A><U0025><U004D>\
<U003A><U0025><U0053><U0020><U0025><U0059>"
#
# Appropriate date representation (%x) "%m/%d/%y"
d_fmt "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
#
# Appropriate time representation (%X) "%H:%M:%S"
t_fmt "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
#
# Appropriate 12 h time representation (%r) "%I:%M:%S %p"
t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>\
<U0020><U0025><U0070>"
#
# Appropriate date representation (date(1)) "%a %b %e %H:%M:%S %Z %Y"
date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
END LC_TIME |
|
|
Back to top |
|
|
Fitzcarraldo Advocate
Joined: 30 Aug 2008 Posts: 2034 Location: United Kingdom
|
Posted: Wed Dec 04, 2013 7:02 pm Post subject: |
|
|
Not that I have tried it, but How can I customize a system locale? looks like it might be of use. It tells you how to modify an existing locale and how to create a locale from scratch. _________________ Clevo W230SS: amd64, VIDEO_CARDS="intel modesetting nvidia".
Compal NBLB2: ~amd64, xf86-video-ati. Dual boot Win 7 Pro 64-bit.
OpenRC udev elogind & KDE on both.
Fitzcarraldo's blog |
|
Back to top |
|
|
wuzzerd Guru
Joined: 05 Jan 2005 Posts: 466 Location: New Mexico
|
Posted: Wed Dec 04, 2013 7:36 pm Post subject: |
|
|
This may not be the absolute correct way to do this, what am I to know, in /etc/env.d/02locale I added the line Code: | TIME_STYLE="long-iso" | then did Code: | # env-update
# source /etc/profile |
It has no effect upon eix, however. |
|
Back to top |
|
|
Fitzcarraldo Advocate
Joined: 30 Aug 2008 Posts: 2034 Location: United Kingdom
|
Posted: Thu Dec 05, 2013 11:57 am Post subject: |
|
|
An easier-to-understand 'How To' than the one I posted earlier: How to change date formats on Ubuntu.
Note also a comment on 18 February 2013:
Sérgio Carvalho wrote: | Instead of looking up the ASCII table to generate the string, you can use hexdump to do it for you. Example:
Code: | echo -n %Y/%m/%d | hexdump -v -e '/1 "<U00%02X>"' ; echo |
|
_________________ Clevo W230SS: amd64, VIDEO_CARDS="intel modesetting nvidia".
Compal NBLB2: ~amd64, xf86-video-ati. Dual boot Win 7 Pro 64-bit.
OpenRC udev elogind & KDE on both.
Fitzcarraldo's blog |
|
Back to top |
|
|
Chopstix n00b
Joined: 20 Oct 2012 Posts: 20
|
Posted: Thu Dec 05, 2013 12:24 pm Post subject: |
|
|
Thank you, these links explain how to make a custom locale well.
Pity it's still such a PITA to do it. |
|
Back to top |
|
|
Fitzcarraldo Advocate
Joined: 30 Aug 2008 Posts: 2034 Location: United Kingdom
|
Posted: Thu Dec 05, 2013 1:00 pm Post subject: |
|
|
Yes, it seems there is no easy way to do it; you have to hack and create a custom locale. Instead of using that command I quoted earlier, a good on-line tool for doing the same thing and more is: Unicode Code Converter, which I found referenced on another good 'How To': Locale: Customising and Making Your Own Date and Time. _________________ Clevo W230SS: amd64, VIDEO_CARDS="intel modesetting nvidia".
Compal NBLB2: ~amd64, xf86-video-ati. Dual boot Win 7 Pro 64-bit.
OpenRC udev elogind & KDE on both.
Fitzcarraldo's blog |
|
Back to top |
|
|
seansmr n00b
Joined: 04 Dec 2011 Posts: 52 Location: Bangkok
|
Posted: Tue Jan 14, 2014 9:40 am Post subject: Can I Lunix be my primary OS if I can't set the date format |
|
|
I have been trying to fix my date as well. I also prefer the date format YYYY-MM-DD. The dash leaves more white space and makes the numbers more readable than a slash. I don't care at all about what it is supposed to be for the country I am currently in.
Just to get it working, I have accepted using locales that I am not in. en.CA works for the date. But other locales will have to be used to get other things right, ie I am in an A4 country. What a silly way.
I think that it is not good that format work this way. You just want to set a date format your way and you end up having to use different locales for different locale LS_xxxx settings. Will using different locales for different settings cause any problems?
Creating a custom local just to get your date the way you want it! Editing a unicode file, non-human readable. No wonder more people don't use Linux.
I have been trying to see if I can use Linux as my primary OS. I can use it for a lot of things, but the last 20% is proving quite difficult. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|